SOAP 客户端仅适用于 Google Chrome

SOAP client only works in Google Chrome

本文关键字:Google Chrome 适用于 客户端 SOAP      更新时间:2023-09-26

我用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(禁止(

你能帮帮我吗?

有一种方法可以在任何浏览器中从不同的域获取数据。在jQuery中,你可以使用JSONP。更多: http://www.jquery-tutorial.net/ajax/same-origin-policy/

听起来很像是因为同源策略。

您不能将 ajax-requets 发送到另一个域(在您的情况下localhost vs 84.255.246.99:8084 (,而不是执行脚本的域。 我假设您在Chrome中添加了某种例外规定,因此它在该浏览器中适合您。

要检查这一点,请使用Firebug或非工作浏览器的Develover控制台来检查响应标头 - 您可能会发现如下所示的内容:

X-Frame-Options:sameorigin