JQuery AJAX 调用 SOAP Web 服务 - 访问被拒绝。使用 SOAP UI 工作

问题描述 投票:0回答:1

JQuery AJAX 调用 SOAP Web 服务会引发“访问被拒绝”异常。请参阅屏幕截图。它正在 SOAP UI 中工作,因此 SOAP 请求似乎是正确的。请帮助查找问题并解决。

我的其他代码截图 - http://tinypic.com/r/2liasgl/5

<!DOCTYPE html>
<html>
 <head>
    <title>Calling Web Service from jQuery</title>
    <script type="text/javascript" src="jquery-1.9.1.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            jQuery.support.cors = true;

            $("#btnCallWebService").click(function (event) {
                var wsUrl = "https://webservices..myservice.../";
                var soapRequest = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:dictionary:com.myservice.webservices"><soapenv:Header xmlns:wsse="http://myservice.org/wss/2004/01/myservice-1.0.xsd"><wsse:Security soapenv:mustUnderstand="1"><wsse:UsernameToken><wsse:Username>efhueeudedujed</wsse:Username><wsse:Password Type="http://myservice-wss-username-token-profile-1.0#PasswordText">dfdjfhdkjfa</wsse:Password></wsse:UsernameToken></wsse:Security></soapenv:Header><soapenv:Body><urn:getETNInstances/></soapenv:Body></soapenv:Envelope>';


                $.ajax({
                    type: "POST",
                    url: wsUrl,
                    contentType: "text/xml",
                    dataType: "xml",
                    data: soapRequest,
                    success: processSuccess,
                    error: processError
                });

            });
        });

        function processSuccess(data, status, req) {
            if (status == "success")
                $("#response").text($(req.responseXML).find("HelloResult").text());
        }

        function processError(data, status, req) {
            alert(req.responseText + " " + status);
        }

    </script>
</head>
<body>
    <h3>
        Calling Web Services with jQuery/AJAX
    </h3>
    Enter your name:
    <input id="txtName" type="text" />
    <input id="btnCallWebService" value="Call web service" type="button" />
    <div id="response" />
</body>
</html>
jquery ajax web-services soap cross-domain
1个回答
0
投票

可能出现的问题有:

  • 您正在使用绝对网址(带有

    https://serverdomain
    )。有些浏览器会阻止绝对 URL,即使它们不是跨域请求。如果您不发出跨域请求,请尝试使用相对网址(不带
    https://serverdomain
    )。

  • 如果上述方法不起作用,另一个可能的问题是您正在执行跨域请求。如果需要进行跨域请求,需要使用一些技术,比如JSONPCORS

© www.soinside.com 2019 - 2024. All rights reserved.