我试图完成SOAP-post以获取XML数据。
问题是“没有'Access-Control-Allow-Origin'标题”,我想服务器需要添加标题。
所以我在SOAPui中创建了一个MockService并复制了服务器响应。但我仍然遇到同样的问题。在响应中的soapUI中,我添加了此http://imgur.com/TZXM2Ca
function soap() {
var sr = MySoapRequest;
$.ajax({
url: url,
beforeSend: function(xhr) {
xhr.setRequestHeader("SOAPAction", "x");
},
type: "POST",
dataType: "xml",
data: sr,
crossDomain: true,
success: function (data) {
console.log(data);
},
error: function (error) {
},
contentType: "text/xml; charset=\"utf-8\""
});
}
答案 0 :(得分:-1)
默认情况下,浏览器无法通过AJAX将POST请求发送到与当前页面不同的URL。例如,如果您打开了位于网址http://foo.com中的网页,并且该网页尝试将某些数据(通过AJAX)发布到http://bar.com,您通常会收到您现在看到的错误。
如果要使其工作,则必须将服务器配置为通过跨源资源共享(CORS)接受请求。我建议你获得一些关于CORS的信息,你可以在网上找到很多关于它的文档。可以找到广泛的概述here。
至于服务器上CORS的实际实现,取决于您使用的是哪个平台。如果您使用的是PHP,请查看this question。