2013-07-10 3 views
1

я называю ASMX веб-службы, как этотXMLHttpRequest responseXML всегда нулевой

var xmlhttp; 
    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp = new XMLHttpRequest(); 
    } 
    else {// code for IE6, IE5 
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    }  
    xmlhttp.onreadystatechange = function() { 
     if (xmlhttp.readyState == 4) { 
      var data = xmlhttp.responseText; 
      var xmlDoc = xmlhttp.responseXML; 
     } 
    } 
    xmlhttp.open("GET", "https://Service/ServiceName.asmx/method?query=data1&count=1",true); 
    xmlhttp.setRequestHeader('Content-Type', 'text/xml'); 
    xmlhttp.send(); 

даже после того, как readystate быть 4, я получаю responseXML утратившим responseText как пустые. тогда как адрес

"https://Service/ServiceName.asmx/method?query=data1&count=1" 

прекрасно работает в браузере.

Пожалуйста, помогите.

+2

И сервис, конечно, на том же домен. – adeneo

+0

Возможный дубликат [Способы обхода политики одного и того же происхождения] (http://stackoverflow.com/questions/3076414/ways-to-circumvent-the-same-origin-policy) – Quentin

+0

Я изменил код для реализации CORS, но все та же проблема ... – AnoojNair

ответ

0

Используйте относительный путь:

with(new XMLHttpRequest) 
    { 
    open("GET","/Service/ServiceName.asmx/method?query=data1&count=1",true); 
    setRequestHeader("Foo", "Bar"); 
    send(""); 
    onreadystatechange = handler; 
    } 

function handler(event) 
{ 
!!event.target && !!event.target.readyState && event.target.readyState === 4 && (console.log(event)); 
} 

Если это не сработает, попробуйте загрузить URL из JavaScript для проверки вопросов маршрутизации:

window.location = "/Service/ServiceName.asmx/method?query=data1&count=1" 
Смежные вопросы