Javascript AJAX请求状态返回0

Javascript AJAX请求状态返回0,javascript,ajax,Javascript,Ajax,当我用这段代码发出AJAX请求时,它将返回状态为0。我做错了什么?此外,出于各种原因,此代码仅设计用于Firefox var ajax; function connectToOtherServer(server,port,userid,password){ ajax=new XMLHttpRequest(); ajax.onreadystatechange=validateConnection; params='userid='+encodeURIComponent(userid)+'&a

当我用这段代码发出AJAX请求时,它将返回状态为0。我做错了什么?此外,出于各种原因,此代码仅设计用于Firefox

var ajax;

function connectToOtherServer(server,port,userid,password){

ajax=new XMLHttpRequest();
ajax.onreadystatechange=validateConnection;

params='userid='+encodeURIComponent(userid)+'&password='+encodeURIComponent(password);

alert('http://'+server+':'+port+'/ok.txt');

ajax.open('POST','http://'+server+':'+port+'/ok.txt',true);

ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded");
ajax.setRequestHeader("Content-length",params.length);
ajax.setRequestHeader("Connection","close");

ajax.send(params);

}

function validateConnection(){
if(ajax.readyState===4){
if(ajax.status===200){

alert(ajax.responseText);

}else{
alert(ajax.status);
}
}
}

如果您尝试连接到另一台服务器,将停止您:

术语“来源”是使用 域名,应用层 协议,以及(在大多数浏览器中)TCP 运行 剧本考虑了两种资源 当且仅当为同一来源 如果所有这些值都完全相同 一样

如果使用JSONP和回调,则只能连接到另一台服务器。另一台服务器将需要支持JSONP/回调机制。此方法包括创建一个新的脚本标记,然后让远程服务器将回调代码返回到此脚本标记中。查看jQuery源代码(或者简单地使用它)以查看它处理JSONP


基本思想是创建一个脚本标记,将源作为远程URL。远程方法返回一个“脚本”,其中包含使用回调的函数调用和生成的JSON数据。

我最近遇到了这个问题。我一直在使用AJAX提交表单结果,以便页面元素可以自动更新。我的域调用是正确的<数据库上的code>SELECT语句可以工作,但
INSERT
UPDATE
DELETE
语句不能工作

通过javascript显示进度的警报表明调用正在正确运行,但它永远不会到达进程的php部分。简单的答案是表单的
onsubmit
元素需要包含
返回false。加上这些之后,事情进展顺利

<form name="form" action="" method="post" onsubmit="ProcessRequest(this);return false;">


希望这有帮助。

嗯?比如,我只能使用ajax连接到与我所在页面相同的url?使用tvanfosson解释的方法,或者在服务器上使用代理脚本。