我正在开展一个学术项目。有一个 JAVA 后端在另一台服务器上为我创建 JSON 响应。 JSON 是完美的,我可以从任何其他节点的浏览器中看到它。
我的工作是解析这个 JSON 并以 HTML 形式显示。
这是我正在使用的一段代码:
function sendQueryToBackend () {
var strURL = "http://10.2.4.234:8080/RestSimpleApp/rest/BingSearch?q=india&callback"; // this is not my system
alert("Searching...MAIN");
$.ajax({
url:strURL,
async:false,
type:"GET",
success: function(result)
{
alert("It works!" ); // This alert never comes up
}
});
}
在函数中,我只想看看它是否接收到数据。 此警报永远不会出现。
但是,如果我使用具有相同 JSON 格式的本地文件,它可以完美工作,我可以解析它以按照我的意愿显示。我哪里出错了?
最佳答案
对我来说听起来像是跨源资源共享问题。
如果资源使用 cookie,您需要将其添加到 ajax 调用中:
'xhrFields': {'withCredentials': true},
您还应该检查资源是否具有适当的 Access-Control-Allow-Origin: *
header ,并且可能还需要 Access-Control-Allow-Headers: Content-Type
。由于这不是您的脚本,因此项目制作者应该在必要时修复此问题。
最后,如果涉及重定向(即,在显示内容之前在地址栏中键入该 URL 会重定向到另一个 URL,即使只是更改大小写),您需要将 URL 更改为最终 /em> 网址。
关于jquery - 使用 Jquery 获取 JSON 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15245720/