我无法访问webservice的响应请帮助我错误即将到来我通过解析提醒它但它显示错误null。我正在使用在线网络服务
var webMethod = "http://www.w3schools.com/webservices/tempconvert.asmx/CelsiusToFahrenheit";
var soap ='<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <CelsiusToFahrenheit xmlns="http://tempuri.org/"> <Celsius>12</Celsius> </CelsiusToFahrenheit> </soap:Body> </soap:Envelope>';
$j.ajax({
type: "POST",
url :webMethod,
data: soap,
dataType :"xml",
contentType:"text/xml; charset=\"utf-8\"",
cache:false,
async: false,
error:function(resp)
{
alert("Error :"+$j.parseXML(resp));
},
}).done(function(response){
console.log(response);
var xmlData =$j(response).find('FahrenheitToCelsiusResult').text();
alert(xmlData);
});
});
答案 0 :(得分:1)
这可能是跨域访问问题。浏览器通常不允许您通过AJAX获取远程数据。使用JSONP接口是解决此问题的常见方法。
或者如果您可以控制远程服务器(在您的示例中这不太可能),那么您可以添加标题:
Access-Control-Allow-Origin: *
请参阅:Wikipedia
我应该补充一点,另一个解决方案是在同一个域上创建自己的本地脚本(例如PHP),您的Javascript可以在本地与之通信。该脚本将处理实际的SOAP通信(因此不必担心跨源策略)并只返回结果。