我从JavaScript调用SOAP WebService。在IE中,我的代码可以工作,但在Firefox上,使用textStatus =“error”,xhr.status = 0和errorThrown为空调用错误函数。我在SO上尝试了不同的答案,但无法解决问题。
jQuery.support.cors = true;
jQuery.ajax({
url: serviceUrl,
beforeSend: function (xhr) {
xhr.setRequestHeader("SOAPAction", soapAction);
},
type: "POST",
dataType: "xml",
data: soap,
success: function(data, textStatus, jqXHR ) {
// report success
success.style.display='block';
},
error: function (jqXHR, textStatus, errorThrown) {
// report error
fail.style.display='block';
alert(textStatus + ": " + jqXHR.status + " / " + errorThrown);
},
contentType: "text/xml; charset=utf-8"
});
Browserversions:IE 9,Firefox 23.0.1
答案 0 :(得分:0)
这是因为同源政策。你不能使用ajax来调用外部网站。如果你真的想使用,你必须使用JSONP。或者您可以使用服务器端代理。意味着,在服务器端调用外部站点并对该Web服务进行ajax调用。