javascript - 获取状态为 0

标签 javascript ajax html apache xmlhttprequest

您好,我正在使用下面的代码进行 ajax 调用

alert("4");
  req.onreadystatechange=function()
  {
  alert("5");
  if (req.readyState==4 && req.status==200)
    {
    xmlDoc=req.responseXML;
    alert("xml doc received"+xmlDoc);
    txt="";
    x=xmlDoc.getElementsByTagName("FIRSTNAME");
    y=xmlDoc.getElementsByTagName("LASTNAME");
    alert("Response achieved"+x);
    }
    else
    {
    alert("Error!!! --> req.readyState  "+req.readyState+" Error !!! ---> req.status  "+req.status);
    }
  }


req.open("POST",url,true);
alert("6");
req.setRequestHeader("Content-type","application/x-www-form-urlencoded");
req.send(parameters);

我得到的 req.readyState 为 4,req.status 为 0 可能是什么问题

我在本地 apache 服务器上托管一个文件。 请回复。

最佳答案

通常的原因是您尝试进行跨域调用并被 Same Origin Policy 停止,它禁止跨源 ajax 调用。您应该会在开发者控制台或网络选项卡中收到一条错误消息,告诉您请求已被阻止。

如果您控制有问题的服务器,或者您可以联系那些这样做的人,您可以(让他们)通过 Cross-Origin Resource Sharing 启用从您的来源的访问。 .如果他们将您的来源列入白名单,则适用于所有现代浏览器,但遗憾的是在 IE8 和 IE9 中您必须使用 Microsoft 的特殊 XDomainRequest 对象而不是 XMLHttpRequest(从 IE10 开始,Microsoft终于入党了)。

或者,您可能会看到您尝试使用的服务器是否支持 JSONP (不要将其与 JSON 混淆),尽管由于您的请求是 POST 而 JSONP 本质上是 GET 操作,因此它们可能不是。

关于javascript - 获取状态为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21721194/

相关文章:

javascript - 如何在javascript中创建自定义对象的公共(public)常量实例?

javascript - jpg 转 base64 javascript

javascript - 根据屏幕尺寸更改 iframe 内容

javascript - 如何使用 JavaScript 中动态创建的每个表行来递增数组

javascript - JSON 请求的无效标签错误

javascript - JS/Ajax图片上传-生成同一内容的多张图片预览缩略图

javascript - Backbone.js 和 FormData

javascript - 更好地理解 Promise.prototype.then

html - 相同纵横比的图像占位符,尊重最大宽度和高度

html - 水平和垂直 Bootstrap 导航栏无法正常工作