#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.