【问题标题】:SOAP client only works in Google ChromeSOAP 客户端仅适用于 Google Chrome
【发布时间】:2012-05-04 14:05:04
【问题描述】:

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

你能帮帮我吗?

【问题讨论】:

    标签: javascript jquery google-chrome soap


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      听起来很像这是因为same origin policy

      您不能将 ajax-requets 发送到另一个域(在您的情况下是 localhost84.255.246.99:8084),而不是执行脚本的域。我假设您为 chrome 添加了某种异常规则,因此它适用于该浏览器。

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

      X-Frame-Options:sameorigin
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-03-15
        • 1970-01-01
        • 2021-10-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多