Вызов веб-службы с использованием javascript ничего не возвращает в responseXML

#javascript #web-services

#javascript #веб-службы

Вопрос:

Я вижу, что этот же вопрос задавался несколько раз на этом форуме, и я применил предложенные ответы, но у меня по-прежнему возникает проблема. Проблема в том, что когда я вызываю веб-службу с использованием javascript, ответ возвращается пустым, в то время как я успешно получаю данные (действительный XML-документ), вызывая веб-службу в любом браузере.

Вот мой javascript-код на HTML-странице:

 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/xml">
<title> MY HTML page        </title>


<script language="JavaScript">
function doWebSvce()
{

    if (window.XMLHttpRequest) { 
    xhttp=new XMLHttpRequest();

    }
    else if (window.ActiveXObject) { 
         XObject("Microsoft.XMLHTTP"); 
         xhttp=new ActiveXObject("Microsoft.XMLHTTP");

}

var url = "http://www.webservicex.net/stockquote.asmx/GetQuote?symbol=IBM"; 
xhttp.open("GET", url, true); 
xhttp.onreadystatechange = getData; 
xhttp.send("");     

}//end doWebSvce

function getData() 
{ 
if (xhttp.readyState == 4)  
{ 

alert("2nd in getData... rxhttp.readyState = "  xhttp.readyState  "  rn  
      xhttp.status= "  xhttp.status  
 " rn  responseXML = "  xhttp.responseXML   " rn   responseText= "   
      xhttp.responseText);

    var myXml=xhttp.responseXML;

     //.... do stuff with myXML variable....
 }
  

Инструкции предупреждения показывают: «2-й в getData…
xhttp.readystate = 4
xhttp.status = 0
xhttp.responseXML = null
responseText = пустой»

Как я уже говорил, я могу нажать на веб-службу, указанную в URL, и получить XML-документ без проблем.

Я выполнил этот же код как в FireFox, так и в IE на двух разных машинах, что привело к одинаковой проблеме, поэтому я думаю, что проблема либо в моем коде, либо в том, как веб-сайт отвечает на мой запрос.

Любые предложения, безусловно, приветствуются. Спасибо всем за ваше время.

Ответ №1:

Похоже, вы пытаетесь выполнить межсайтовый запрос, и в этом проблема. Межсайтовые запросы невозможны с помощью XmlHttp.