ajax 返回状态码问题 有一个程序是用ajax异步调用的,程序在我本机上运行一切正常,当部署到服务器上面后,返回的状态码老是等于0,即xmlhttprequest.status = 0 。我上网查了一下,很多人都说是因为ajax访问的是本地文件的原因。但我的程序明明访问的是web服务器上的jsp。而且在本机也是运行顺利的。十分不解。请达人相助! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function send_request(url) {//初始化、指定处理函数、发送请求的函数 http_request = false; //开始初始化XMLHttpRequest对象 if(window.XMLHttpRequest) { //Mozilla 浏览器 http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) {//设置MiME类别 http_request.overrideMimeType('text/xml'); } }else if (window.ActiveXObject) { // IE浏览器 try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { // 异常,创建对象实例失败 window.alert("不能创建XMLHttpRequest对象实例."); return false; } http_request.onreadystatechange = processRequest; http_request.open("post", url, true); http_request.send(null); } function processRequest() { // only if req shows "loaded" if (http_request.readyState == 4) { // only if "OK" alert("status"+http_request.status); if (http_request.status == 200) { //alert(http_request.responseText).Trim(); var temp = http_request.responseText.Trim(); ................. ................ } }} ajax发送的目标是一张jsp页面,jsp做了一些逻辑判断,如果验证成功的话,jsp最后的一行代码执行如下操作: response.sendRedirect(next_url.toString()); //next_url 是其他机上的应用,他会根据请求的url进行判断。然后返回相应的提示内容。如"OK","Error"等现在问题就是在转发上,我在本机上跑的话。页面接到的返回状态是200,且能得到相应的提示内容"OK" or "Error"。但如果我把程序原封不动的部署到服务器上面。等到的返回状态码是0。即:http_request.status = 0 。返回的内容为""空。 贴出代码来还是有用的.出现这种情况的原因可能是LZ尚未将XMLHttp对象初始化就调用了,初始化不是实例化,把open和onreadystatechange换一个位置试试看. 按你说的改了,改后的代码如下function send_request(url) {//初始化、指定处理函数、发送请求的函数 http_request = false; //开始初始化XMLHttpRequest对象 if(window.XMLHttpRequest) { //Mozilla 浏览器 http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) {//设置MiME类别 http_request.overrideMimeType('text/xml'); } }else if (window.ActiveXObject) { // IE浏览器 try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { // 异常,创建对象实例失败 window.alert("不能创建XMLHttpRequest对象实例."); return false; } http_request.open("post", url, true); http_request.onreadystatechange = processRequest; http_request.send(null); } 可还是不行。跟这个有关系吗?有个现象我必须跟你强调一下,我在本机上跑没出过问题。其他ajax跟这个一样编码的验证也不会出问题。 java web服务调用错误,求高手解决 spring 配置事务管理,找不到类 有几个面试题。大家做做。 关于compass的distinct问题 高分求救 如何给文本文件去掉空行???????? 菜鸟的问题,如何在多个jsp页面之间共享同一个数据库的Connection呢 树状图 进来看看,为什么能得到request传来的值,却查不出结果,是不是sql不对呀,急,给分 高手帮看看 servlet向jsp传值,参数改变了 谁有com.sun.image.codec.jpeg包?或者哪里有下载? 非常奇怪的问题!!
http_request = false;
//开始初始化XMLHttpRequest对象
if(window.XMLHttpRequest) { //Mozilla 浏览器
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {//设置MiME类别
http_request.overrideMimeType('text/xml');
}
}else if (window.ActiveXObject) { // IE浏览器
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) { // 异常,创建对象实例失败
window.alert("不能创建XMLHttpRequest对象实例.");
return false;
}
http_request.onreadystatechange = processRequest;
http_request.open("post", url, true);
http_request.send(null);
} function processRequest() {
// only if req shows "loaded"
if (http_request.readyState == 4) {
// only if "OK"
alert("status"+http_request.status);
if (http_request.status == 200) {
//alert(http_request.responseText).Trim();
var temp = http_request.responseText.Trim();
.................
................ }
}
}
ajax发送的目标是一张jsp页面,jsp做了一些逻辑判断,如果验证成功的话,jsp最后的一行代码执行如下操作:
response.sendRedirect(next_url.toString());
//next_url 是其他机上的应用,他会根据请求的url进行判断。然后返回相应的提示内容。如"OK","Error"等
现在问题就是在转发上,我在本机上跑的话。页面接到的返回状态是200,且能得到相应的提示内容"OK" or "Error"。但如果我把程序原封不动的部署到服务器上面。等到的返回状态码是0。即:http_request.status = 0 。返回的内容为""空。
出现这种情况的原因可能是LZ尚未将XMLHttp对象初始化就调用了,初始化不是实例化,把open和onreadystatechange换一个位置试试看.
function send_request(url) {//初始化、指定处理函数、发送请求的函数
http_request = false;
//开始初始化XMLHttpRequest对象
if(window.XMLHttpRequest) { //Mozilla 浏览器
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {//设置MiME类别
http_request.overrideMimeType('text/xml');
}
}else if (window.ActiveXObject) { // IE浏览器
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) { // 异常,创建对象实例失败
window.alert("不能创建XMLHttpRequest对象实例.");
return false;
}
http_request.open("post", url, true); http_request.onreadystatechange = processRequest;
http_request.send(null);
}
可还是不行。跟这个有关系吗?有个现象我必须跟你强调一下,我在本机上跑没出过问题。
其他ajax跟这个一样编码的验证也不会出问题。