我在这个论坛上看到过几次同样的问题并且我已经应用了建议的答案,但我仍然遇到问题。问题在于,当我使用javascript调用Web服务时,响应返回空,而我成功接收在任何浏览器中调用Web服务的数据(有效的XML文档)。
以下是HTML页面中的javascript代码:
<!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... \r\xhttp.readyState = "+ xhttp.readyState +" \r\n
xhttp.status= "+ xhttp.status +
" \r\n responseXML = "+ xhttp.responseXML + " \r\n responseText= "+
xhttp.responseText);
var myXml=xhttp.responseXML;
//.... do stuff with myXML variable....
}
警告语句显示:“getData中的第二个... xhttp.readystate = 4 xhttp.status = 0 xhttp.responseXML = null responseText = blank“
正如我所说的,我可以点击网址中指示的网络服务并收到一份没有问题的XML文档。
我在两台不同的机器上同时在FireFox和IE中执行了相同的代码,给我带来了同样的问题,所以我认为问题出在我的代码或网站响应我的请求的方式。
任何建议当然值得赞赏。感谢您的所有时间。
答案 0 :(得分:2)
看起来您正在尝试提出跨站请求,这就是问题所在。 XmlHttp无法进行跨站点请求。