使用$.getJSON执行跨域请求问题
我使用以下代码使用 $.getJSON 发出跨域请求,请求已完成但有错误,我无法准确检测抛出的错误是什么。
根据请求值的回调参数,我将其路由到检索所需 JSON 数据的特定方法。
$.getJSON("http://wthsrvr:45452/Handler.ashx/?Callback=DocumentReadStatus",
{
userID: vuserID,
documentID: vdocumentID,
format: "json"
},
function(result) {
if (result.readStatus == '1') {
alert("ACCEPTED");
}
else if (result.readStatus == '0') {
alert("NOT ACCEPTED");
}
else {
alert(result.readStatus);
}
});
仅供参考:在本地开发时,一切正常,但在将解决方案部署到服务器并尝试执行相同操作后,我遇到了这个问题。
另外,我尝试了与 Web 服务相同的功能,从服务器调用 Web 服务时遇到了同样的问题。
我正在使用 ajaxSetup 来检测抛出的错误。
$.ajaxSetup({ "error": function(XMLHttpRequest, textStatus, errorThrown) {
alert("textStatus: " + textStatus);
alert("errorThrown: " + errorThrown);
alert("responseText: " + XMLHttpRequest.responseText);
}
});
I'm using the following code to make cross domain request using $.getJSON, request completed but with errors, I cannot exactly detect what is the thrown error.
Based on callback param of request value I route it to a certain method which retrieves required JSON data.
$.getJSON("http://wthsrvr:45452/Handler.ashx/?Callback=DocumentReadStatus",
{
userID: vuserID,
documentID: vdocumentID,
format: "json"
},
function(result) {
if (result.readStatus == '1') {
alert("ACCEPTED");
}
else if (result.readStatus == '0') {
alert("NOT ACCEPTED");
}
else {
alert(result.readStatus);
}
});
FYI: while development of this locally, everything worked fine, but after solution deployment to server and trying to do the same, I got that problem.
Also, I tried the same functionality with web service, I got the same problem while calling web service from server.
I'm using ajaxSetup to detect thrown errors.
$.ajaxSetup({ "error": function(XMLHttpRequest, textStatus, errorThrown) {
alert("textStatus: " + textStatus);
alert("errorThrown: " + errorThrown);
alert("responseText: " + XMLHttpRequest.responseText);
}
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
要跨不同网站访问,必须使用 JSONP,它实际上成为 JavaScript 文件的请求,并且数据作为 JavaScript 文件的一部分发送回来。
To access across different website, you have to use JSONP, which actually becomes a request of a JavaScript file and the data is sent back as part of the JavaScript file.
实际上,这是一个权限问题。使用“Access-Control-Allow-Origin”HTTP header,使得资源可以被任何域以跨站方式访问。
请查看以下 MDN 文章了解这一点。
Actually, it was a permission issue. Using "Access-Control-Allow-Origin" HTTP header so that the resource can be accessed by any domain in a cross-site manner.
Check the following MDN article for this.