当firefox和chrome时,XMLHttpRequest状态始终为零
XMLHttpRequest status always zero when firefox and chrome
我有一个代码如下:
<script>
var xmlhttp = new XMLHttpRequest();
var url = "http://localhost:9080/MyRestService/viewitems";
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
doSomeFunction(xmlhttp.responseText);
}
}
xmlhttp.open("GET", url, true);
xmlhttp.send();
function doSomeFunction(response) {
var arr = JSON.parse(response);
var i;
var out = "<table>";
for(i = 0; i < arr.length; i++) {
out += "<tr><td>" +
arr[i].title +
"</td><td>" +
arr[i].singer +
"</td></tr>";
}
out += "</table>";
document.getElementById("id01").innerHTML = out;
}
</script>
在IE上运行良好,但在Chrome和Firefox中不起作用。基本上,在Firefox和Chrome中返回的xmlhttp.status总是0。在IE中,它返回200,这允许处理开始。
编辑:添加html页面的整个代码
编辑:我解决了问题。该问题是由于跨域脚本编写造成的。我在我的restful服务代码中添加了响应头访问控制参数来解决这个问题。
可能是Firefox和Chrome正在缓存该网站。如果服务器随后检测到没有任何变化,则它不以状态代码200来响应,而是以状态代码304"未修改"来响应。然后将从缓存中加载响应本身。
相关文章:
- 事件和状态
- 获取选择框的状态
- 相位器状态未捕获参考错误
- 如何更改reactjs中外部/独立组件的状态或属性
- 如何使用密码检测网络中的状态连接
- Ember.js-接口状态应该存储在哪里
- 混合 ui-sref 和 $state.go 在 Angular ui-router 中进行状态转换
- 在Angular 2中布线期间保持零部件处于活动状态
- 在mvc应用程序中,在回发时保留最初隐藏的文本框的隐藏或可见状态
- XMLHttpRequest未返回值-状态202
- 使用javascript反复检查用户在facebook上的登录状态
- 如何使bxslider仅在移动视图中处于活动状态
- 获取ASP.NET Ajax Timer状态
- React redux初始化功能,无论状态变化如何
- 无法在现有状态转换期间更新-未使用任何非法的setState()
- 悬停下拉菜单即使在鼠标移出后也保持活动状态
- 从组件状态的数组中删除元素
- iOS 中的按钮触摸状态
- 使用AngularJS中的UI路由器将状态重定向到默认子状态
- 设计redux状态树