【问题标题】:XHR readyState = 4 but Status = 0 in Google Chrome BrowserXHR 就绪状态 = 4 但状态 = 0 在 Google Chrome 浏览器中
【发布时间】:2011-03-05 11:58:54
【问题描述】:

您好,我的网站上的 AJAX 调用遇到了一个奇怪的问题。我对我网站上的脚本进行了简单的 AJAX 调用。但是 AJAX 调用失败,readyState = 4 和 status = 0。不存在跨域问题,因为我要调用的脚本在我的服务器上。

$.ajax({
                    type:"GET",
                    url: 'http://mydomain.com/test.php',
                    success : function(response){
                        console.log(response);
                    },
                    error : function(XHR){
                        console.log(arguments);
                    }
});

我搜索了很多网站,但似乎没有解决方案!

【问题讨论】:

  • 是您在 www 上的站点。还是裸域?
  • =>如果您遇到此问题,只需先清除浏览器会话 cookie,然后在您的 ajax 网址中添加 "Math.rendom()" 例如,“sample.php?r=" + Math.random(); => url 写对了吗?如果您将其写为绝对 URL (如 etc,它将无法正常工作。那里是相对路径吗?
  • 您找到答案了吗?我遇到了同样的问题,我的不是域问题。

标签: ajax google-chrome xmlhttprequest


【解决方案1】:

当 AJAX 请求的 URL 的域与运行脚本的页面不同时会发生这种情况。例如,www.mydomain.commydomain.com 不同。

要修复它,请替换

url: 'http://mydomain.com/test.php',

url: 'http://' + document.domain + '/test.php',

我在自己寻找答案时发现了这个问题。我从here得到了解决方案。

【讨论】:

  • 我在一个非常简单的页面上遇到了同样的错误,该页面在生产中 99% 的时间都有效。但有时我会收到此错误。该代码具有完全相同的域和协议,很容易分辨,因为 javascript 很短,并且 url 是硬编码的。
猜你喜欢
  • 1970-01-01
  • 2011-07-15
  • 2020-09-13
  • 1970-01-01
  • 1970-01-01
  • 2021-07-10
  • 1970-01-01
  • 2011-03-16
  • 1970-01-01
相关资源
最近更新 更多