我想调用一个可以使用哪个URL的Web服务。 我想只是调用它并使用javascript Ajax检索结果。 例如:如果一些类似添加两个号码的Web服务可以自由使用,并且我想在我的应用程序中使用它,我该如何开始? 我刚刚实现了以下代码(不知道它是否正确):
function webServiceCallResult(){
var xmlHttpReq = getXMLHttpRequest();
if(xmlHttpReq == null){
alert('Exception occurred');
return false;
}
var strURL = "http://www.androidpeople.com/wp-content/uploads/2010/06/example.xml";
//var strURL = 'http://w3schools.com/dom/note.xml';
if(xmlHttpReq.readyState == 0){
xmlHttpReq.open('GET', strURL, true);
xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlHttpReq.onreadystatechange = function() {
if (xmlHttpReq.readyState == 4) {
var resultString = xmlHttpReq.responseXML;
document.getElementById('webserviceresponsetext').value = resultString.getElementsByTagName("website")[0].childNodes[0].nodeValue;
}
}
xmlHttpReq.send();
}
}
这在IE中工作正常但在FF,Opera等中出错
XML parsing error,no element found Location: moz-nullprincipal:{ce91453b-f84c-4ce8-b02c-b999ef9f013a} Line Number 1, Column 1
是否可以在不使用SOAP服务请求的情况下调用Web服务? 感谢..
答案 0 :(得分:1)
除非你想处理浏览器特定的交叉兼容性内容,否则你应该使用库来处理Ajax请求。
此外,我看到您正在向其他服务器发出Ajax请求。不幸的是,相同的原始策略会阻止跨域XHR,但是通过使用JSONP可以解决这个问题。
我建议在JSONP中使用jQuery的Ajax方法,在这里阅读一些关于此的文章:http://remysharp.com/2007/10/08/what-is-jsonp/
http://www.giantflyingsaucer.com/blog/?p=2682
答案 1 :(得分:0)
AFAIK相同的原始政策可防止跨域XHR。您必须在服务器端托管与远程端点通信的服务。
答案 2 :(得分:0)
您是否从同一个域发出请求?
Firefox不允许您使用XMLHttpRequest访问其他域。请参阅以下链接。
http://www.captain.at/howto-ajax-permission-denied-xmlhttprequest.php
您应该只从http://www.androidpeople.com/下的页面调用请求。