我在javascript中创建了一个SOAP客户端。问题是它只适用于谷歌浏览器。
代码:
$("#send").click(function (event) {
var wsUrl = "http://myip:8084/Service1.asmx";
var soapRequest =
'<?xml version="1.0" encoding="utf-8"?> \
<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> \
<GetVozilo xmlns="http://mydomain.com/apps"> \
<vin>' + $("#vin").val() + '</vin> \
</GetVozilo> \
</soap:Body> \
</soap:Envelope>';
console.log(soapRequest);
$.ajax({
type: "post",
url: wsUrl,
contentType: "text/xml",
dataType: "xml",
data: soapRequest,
success: processSuccess,
error: processError
});
});
在控制台中我也收到此错误:
选项http://mydomain.com/Service1.asmx 403(禁止)
你能帮帮我吗?
答案 0 :(得分:1)
有一种方法可以在任何浏览器中从不同的域获取数据。在jQuery中,您可以使用JSONP。 更多信息:http://www.jquery-tutorial.net/ajax/same-origin-policy/
答案 1 :(得分:0)
听起来非常像这是因为same origin policy。
您不能将ajax-requets发送到另一个域(在您的情况下为localhost
vs 84.255.246.99:8084
),而不是执行脚本。我假设您在chrome中添加了某种异常规则,因此它适用于您的浏览器。
要检查这一点,使用firebug或非工作浏览器的开发者控制台来检查响应标头 - 你可能会发现这样的事情:
X-Frame-Options:sameorigin