我正在尝试使用Javascript创建SOAP请求,但它似乎不起作用。 请在下方找到已使用过的代码。
URL="http://footballpool.dataaccess.eu/data/info.wso";
xmlStr="<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><AllDefenders xmlns="http://footballpool.dataaccess.eu"> <sCountryName>string</sCountryName></AllDefenders></soap:Body></soap:Envelope>";
jQuery.ajax({
type: "POST",
url: URL,
dataType: "xml",
processData: false,
data: xmlStr,
beforeSend: function(req) {
req.setRequestHeader("Method", "POST");
req.setRequestHeader("Content-Type", "text/xml" + "; charset=\"" + "UTF-8" + "\"");
}
});
响应:
Object
OPTIONS http://footballpool.dataaccess.eu/data/info.wso 400 (Bad Request)
jquery.js:4 XMLHttpRequest cannot load http://footballpool.dataaccess.eu/data/info.wso. Origin http://www.know7.com is not allowed by Access-Control-Allow-Origin.
我正在尝试从http://footballpool.dataaccess.eu/data/info.wso?op=AllDefenders
获得回复谢谢..
答案 0 :(得分:1)
你不能只是从其他域名中调用网址,否则我们就会非常糟糕!您总是需要代理您正在做的事情, PHP , .NET 等,您可以调用该端点并接收呼叫并绕过您的javascript呼叫
您收到跨域错误:
Access-Control-Allow-Origin不允许原点http://www.know7.com。
那会告诉你一切......
如果您拥有此域名,则可以通过创建cross-domain.xml
文件将其打开,并添加允许跨域调用的Html标头。
他们为你提供了一种获取JSON的方法,但他们并没有将它包装在一个函数中,所以你总会得到一个错误:
http://jsbin.com/ivobun/1/edit
因此,除了代理服务器外,您无能为力。
答案 1 :(得分:1)
除了Endy
的回答之外,您可能希望在Mozilla DevNet上查看有关资源跨域访问的文章,并相关检查服务器响应的HTTP头。具体来说,Access-Control-Allow-Origin
标题的内容将告诉您服务器管理员允许哪些域允许访问指定资源。
https://developer.mozilla.org/en-US/docs/HTTP_access_control
答案 2 :(得分:0)
好像您正在尝试跨域执行请求。这是不允许的,只有JSONP是。