Javascript Chrome和Firefox中的状态为零

Javascript Chrome和Firefox中的状态为零,javascript,rest,xmlhttprequest,Javascript,Rest,Xmlhttprequest,我必须使用Javascript调用Rest服务。我的代码是: function CreateXMLHttpRequest() { if (typeof XMLHttpRequest != "undefined") { return new XMLHttpRequest(); } else if (typeof ActiveXObject != "undefined") { return new ActiveXObject("Microsoft.XMLHTTP"); }

我必须使用Javascript调用Rest服务。我的代码是:

function CreateXMLHttpRequest() {
  if (typeof XMLHttpRequest != "undefined") {
    return new XMLHttpRequest();
  } else if (typeof ActiveXObject != "undefined") {
    return new ActiveXObject("Microsoft.XMLHTTP");
  } else {
    throw new Error("XMLHttpRequestnot supported");
  }
}
function CallWebService() {
  objXMLHttpRequest = CreateXMLHttpRequest();
  objXMLHttpRequest.open("POST", "http://www.rest.net/services/abc.svc/json/GetXml", true);
  objXMLHttpRequest.setRequestHeader("Content-Type", "application/xml;charset=UTF-8");
  var packet = '<?xml version="1.0" encoding="utf-8" ?><CompanyRequest xmlns="http://schemas.datacontract.org/2004/07/abc.DomainModel" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><CompanyName>company</CompanyName></CompanyRequest>';
  objXMLHttpRequest.onreadystatechange = function () {
    if (objXMLHttpRequest.readyState == 4&&objXMLHttpRequest.status==200) {
      alert(objXMLHttpRequest.responseText);
    }
  }
  objXMLHttpRequest.send(packet);
}
函数CreateXMLHttpRequest(){
if(XMLHttpRequest的类型!=“未定义”){
返回新的XMLHttpRequest();
}else if(ActiveXObject的类型!=“未定义”){
返回新的ActiveXObject(“Microsoft.XMLHTTP”);
}否则{
抛出新错误(“不支持XMLHttpRequest”);
}
}
函数CallWebService(){
objXMLHttpRequest=CreateXMLHttpRequest();
objXMLHttpRequest.open(“POST”http://www.rest.net/services/abc.svc/json/GetXml“,对);
setRequestHeader(“内容类型”,“应用程序/xml;字符集=UTF-8”);
var数据包=‘公司’;
objXMLHttpRequest.onreadystatechange=函数(){
if(objXMLHttpRequest.readyState==4&&objXMLHttpRequest.status==200){
警报(objXMLHttpRequest.responseText);
}
}
objXMLHttpRequest.send(数据包);
}
IE的状态是200,我可以得到回复。但在Firefox和Chrome中,状态为0。我怎样才能克服这个问题


提前感谢。

您在请求文档,我假设您在不同的域中。在这种情况下,您是的受害者,您的呼叫被阻止


如果您已设置为受信任域,它可能在IE中工作。

有一些技术允许跨域通信,如CORS或JSONP,您需要检查您的Web服务是否允许它们。如果没有,你不能用JavaScript调用Web服务,你需要找到另一种方法。你能告诉我如何使用这些技术吗?你调用的Web服务应该记录这一点。如果没有,很可能意味着它们不受支持。对于JSONP,jQuery是一个很好的起点: