使用$.getJSON执行跨域请求问题

发布于 2024-10-18 12:22:51 字数 929 浏览 4 评论 0原文

我使用以下代码使用 $.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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

剧终人散尽 2024-10-25 12:22:51

要跨不同网站访问,必须使用 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.

海风掠过北极光 2024-10-25 12:22:51

实际上,这是一个权限问题。使用“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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文