Javascript 在chrome和firefox中响应为空

Javascript 在chrome和firefox中响应为空,javascript,xml,wcf-rest,Javascript,Xml,Wcf Rest,我想使用javascript调用rest服务。我的代码是: function CreateXMLHttpRequest() { if (typeof XMLHttpRequest != "undefined") { alert("1"); return new XMLHttpRequest(); } else if (typeof ActiveXObject != "undefined") { alert("2"); return

我想使用javascript调用rest服务。我的代码是:

function CreateXMLHttpRequest() {
   if (typeof XMLHttpRequest != "undefined") {
      alert("1");
      return new XMLHttpRequest();
   }
   else if (typeof ActiveXObject != "undefined") {
      alert("2");
      return new ActiveXObject("Microsoft.XMLHTTP");
   }
   else {
      throw new Error("XMLHttpRequestnot supported");
   }
}

function CallWebService() {
   var objXMLHttpRequest = null;
   objXMLHttpRequest = CreateXMLHttpRequest();

   objXMLHttpRequest.open("POST", "http://localhost:2546/abc.svc/json/GetXml", true);
   objXMLHttpRequest.setRequestHeader("Content-Type", "application/xml;charset=UTF-16");
   var packet = '<CompanyRequest xmlns="http://schemas.datacontract.org/2004/07/abc.DomainModel" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><CompanyName>company</CompanyName></CompanyRequest>';

   objXMLHttpRequest.send(packet);
      alert(packet);
      var d =(objXMLHttpRequest.responseText);
      alert(d);           
   }
函数CreateXMLHttpRequest(){
if(XMLHttpRequest的类型!=“未定义”){
警报(“1”);
返回新的XMLHttpRequest();
}
else if(ActiveXObject的类型!=“未定义”){
警报(“2”);
返回新的ActiveXObject(“Microsoft.XMLHTTP”);
}
否则{
抛出新错误(“不支持XMLHttpRequest”);
}
}
函数CallWebService(){
var objXMLHttpRequest=null;
objXMLHttpRequest=CreateXMLHttpRequest();
objXMLHttpRequest.open(“POST”http://localhost:2546/abc.svc/json/GetXml“,对);
setRequestHeader(“内容类型”,“应用程序/xml;字符集=UTF-16”);
var数据包=‘公司’;
objXMLHttpRequest.send(数据包);
警报(数据包);
var d=(objXMLHttpRequest.responseText);
警戒(d);
}
它在IE中运行良好,但在Firefox和chrome中响应为空。我不明白出了什么问题。我已经找了三天了。 如果有任何错误,请告诉我


提前感谢….

您正在执行异步请求

尝试执行同步请求,如

 objXMLHttpRequest.open("POST", "http://localhost:2546/abc.svc/json/GetXml", false);
或者异步地

objXMLHttpRequest.onreadystatechange = function () {
    if ( objXMLHttpRequest.readyState == 4 ) {
        alert(req.responseText);
    }
};
并将标题设置为:

试试这个:

 objXMLHttpRequest.setRequestHeader("Content-Type", "text/xml");

 objXMLHttpRequest.setRequestHeader( "SOAPAction", "http://localhost:2546/abc.svc/json/GetXml" );

您正在进行异步调用。尝试使用回调函数

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() {
     var objXMLHttpRequest = CreateXMLHttpRequest();
     objXMLHttpRequest.open("POST", "http://localhost:2546/abc.svc/json/GetXml", true);
     objXMLHttpRequest.setRequestHeader("Content-Type", "text/xml");
     var packet = '<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(){
var objXMLHttpRequest=CreateXMLHttpRequest();
objXMLHttpRequest.open(“POST”http://localhost:2546/abc.svc/json/GetXml“,对);
setRequestHeader(“内容类型”,“text/xml”);
var数据包=‘公司’;
objXMLHttpRequest.onreadystatechange=函数(){
if(objXMLHttpRequest.readyState==4&&objXMLHttpRequest.status==200){
警报(objXMLHttpRequest.responseText);
}
}
objXMLHttpRequest.send(数据包);
}

这将起作用。但它会冻结用户界面,使其无法执行任何其他操作,直到收到响应为止。@Vidhya:对不起。只是写了一段原始代码。我总是对XMLHttpRequest使用变量名'req'。更新。没有显示错误?只是空警报框…它在IE中工作,但在chrome和Firefox中不工作。您是否尝试同步执行此操作?使用我的第一个选项进行测试。如果警报框仍然为空,则可能需要检查服务器端代码;objXMLHttpRequest.setRequestHeader(“SOAPAction”,即“”);你犯了什么错误?在服务器端获取xml?没有显示错误?只是空警报框…它在IE中工作,但在chrome和firefoxTry中不工作。请将内容类型设置为“text/xml”。检查CallWebservice函数中编辑的代码。我无法理解原因。你可以随时打我sathishp123@gmail.comI回复你的身份证。检查一下。