gpt4 book ai didi

javascript - 404 未找到 JSON 文件 Liferay

转载 作者:行者123 更新时间:2023-11-27 23:13:48 25 4
gpt4 key购买 nike

在常规 HTML 页面中一切顺利,但在 liferay portlet 中使用相同的代码时,我遇到了这个问题:

获取 http://localhost:8080/web/guest/data/myfile.json 404(未找到)index.js:103

这是代码:

function loadFiles(){

loadJSONNetworkInventory(function(response) {

parsedMyFile = JSON.parse(response);

});
}


function loadJSONNetworkInventory(callback) {

var xobjNI = new XMLHttpRequest();
xobjNI.overrideMimeType("application/json");
xobjNI.open('GET', 'data/myfile.json', false);
xobjNI.onreadystatechange = function () {
if (xobjNI.readyState == 4 && xobjNI.status == "200") {
callback(xobjNI.responseText);
}
};
xobjNI.send(null);
}

最佳答案

I am not sure, how do you assume that the URL http://localhost:8080/web/guest/data/myfile.json will serve you myfile.json as response when called. Where do you construct that URL and how do you suppose it to work?

嗯,另一种简单的方法是在 portlet 的 docroot 下创建 data 文件夹,然后移动 myfile.json文件在那里。

现在,在您的外部 javascript 文件(您已共享其中的一些代码)的 include 上方,添加以下行:

<script type="text/javascript">
var portletContextPath = '<%=request.getContextPath() %>';
</script>

并在给定的脚本中进行以下更改:

function loadJSONNetworkInventory(callback) {
var xobjNI = new XMLHttpRequest();
xobjNI.overrideMimeType("application/json");
var jsonFilePath = portletContextPath + '/data/myfile.json';
xobjNI.open('GET', jsonFilePath, false);
xobjNI.onreadystatechange = function () {
if (xobjNI.readyState == 4 && xobjNI.status == "200") {
callback(xobjNI.responseText);
}
};

xobjNI.send(null);
}

就是这样! portletContextPath 将用作 JavaScript 变量来获取 Portlet 的动态上下文路径,而 jsonFilePath 将是 myfile.json 的路径。

关于javascript - 404 未找到 JSON 文件 Liferay,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35984067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com