如何使用jQuery通过基本身份验证来使用soap Web服务(.asmx)?

时间:2013-12-24 10:06:18

标签: javascript jquery web-services soap asmx

我正在尝试使用jQuery(或任何可行的方法)调用需要基本身份验证的(.asmx)soap Web服务。

如何将参数传递给(.asmx)soap web服务

我无法在Google上找到任何答案。有可能吗?

2 个答案:

答案 0 :(得分:1)

好的,最后我能够解决这个问题:) 我正在寻找错误的方向,我正在寻找如何使用$ .Ajax打开基本身份验证保护的URL,我应该使用XMLHttpRequest()从JavaScript中搜索使用SOAP服务 以下是我的问题的答案:

var symbol = "MSFT"; 
var xmlhttp = new XMLHttpRequest();
//xmlhttp.open("POST", "http://www.webservicex.net/stockquote.asmx?op=GetQuote", true);
// if you use username and password to secure your URL
xmlhttp.open("POST", "http://www.webservicex.net/stockquote.asmx?op=GetQuote", true, 'username', 'password');
xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4) {
        console.log(xmlhttp.responseText);
    }
}
xmlhttp.setRequestHeader("SOAPAction", "http://www.webserviceX.NET/GetQuote");
xmlhttp.setRequestHeader("Content-Type", "text/xml");
var xml = '<?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> ' +
          '<GetQuote xmlns="http://www.webserviceX.NET/"> ' +
          '<symbol>' + symbol + '</symbol> ' +
          '</GetQuote> ' +
          '</soap:Body> ' +
          '</soap:Envelope>';
xmlhttp.send(xml);

答案 1 :(得分:0)

你需要使用jquery ajax。

            var uri="http://asmx_file_path/asmx_service_file_name/method_name_in_asmx_file"
            //ex: var uri = "http://mysite.test.com/services/data/mobile.asmx?method=login&username=" + uname+ "&password=" + pwd;
            $.ajax({
                type: "GET",
                url: uri,
                success: function (msg) {
                    jasondata = eval('(' + msg + ')');

                },
            });

您还需要为该asmx文件添加服务引用。

    <asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server">
    <Services>
        <asp:ServiceReference Path="~/services/data/mobile.asmx" />
    </Services>
    </asp:ScriptManagerProxy>

您可以查看本教程。

<强> calling-asmx-web-service-via-jquery-ajax