Javascript JQuery:调用Web服务

Javascript JQuery:调用Web服务,javascript,jquery,silverlight,asmx,Javascript,Jquery,Silverlight,Asmx,我正在开发一个SilverLight应用程序,在浏览器关闭事件中,我需要执行一个web服务调用。我有一个web服务方法,它接受一个参数。当用户单击浏览器关闭事件时。我将调用doRelease()函数。releaseuser方法需要参数usertoken 调用jQuery函数CallService()时出错 电话:186 错误:应为对象 这看起来有点奇怪:- function doRelease() { var usertoken = readCookie("usertoken");

我正在开发一个SilverLight应用程序,在浏览器关闭事件中,我需要执行一个web服务调用。我有一个web服务方法,它接受一个参数。当用户单击浏览器关闭事件时。我将调用doRelease()函数。releaseuser方法需要参数usertoken

调用jQuery函数CallService()时出错

电话:186 错误:应为对象


这看起来有点奇怪:-

function doRelease() { 

    var usertoken = readCookie("usertoken"); 


    Temp("usertoken"); 
} 
首先,我们假设
readCookie
正在做正确的事情

第二,最后一行应该是:-

    Temp(usertoken);

第三,“Silverlight”角度在哪里?这看起来有点奇怪:-

function doRelease() { 

    var usertoken = readCookie("usertoken"); 


    Temp("usertoken"); 
} 
首先,我们假设
readCookie
正在做正确的事情

第二,最后一行应该是:-

    Temp(usertoken);

第三,“Silverlight”角度在哪里?

数据必须包装为对象。在CallService函数中,更改:

data: varData, 
致:


在web服务方法中将“input”更改为实际参数名称。

数据必须包装为对象。在CallService函数中,更改:

data: varData, 
致:


在web服务方法中将“input”更改为实际参数名称。

我解决了问题,但没有使用jquery。这是我的解决办法

function sendDataAsXML_SOAP() {
        var req_params = "", url = "", number = 0, type = "";
        /* Configure Parameters */
        url = "http://localhost/TempWS/MachineHistoryWS.asmx";
        user = "129272802615082804";

        req_params = "<?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/\">";
        req_params = req_params + "<soap:Body><ReleaseUser>";
        req_params = req_params + "<credentials>" + user + "</credentials></ReleaseUser></soap:Body></soap:Envelope>";
        alert(req_params);
        /* Send XML/SOAP Request To Web Service Using Browser's Javascript DOM */
        try {
            ajax_request = new XMLHttpRequest();
        }
        catch (trymicrosoft) {
            try {
                ajax_request = new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch (othermicrosoft) {
                try {
                    ajax_request = new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch (failed) {
                    ajax_request = false;
                }
            }
        }
        ajax_request.open("POST", url, true);
        ajax_request.setRequestHeader("Content-Type", "text/xml;charset=utf-8");
        ajax_request.onreadystatechange = receiveXML_SOAPData;
        ajax_request.send(req_params);
    }

    function receiveXML_SOAPData() {
        if (ajax_request.readyState == 4) {
            if (ajax_request.status == 200) {
                alert(ajax_request.responseText);

            }
        }
    }
函数sendDataAsXML\u SOAP(){ var req_params=“”,url=“”,number=0,type=“”; /*配置参数*/ url=”http://localhost/TempWS/MachineHistoryWS.asmx"; user=“129272802615082804”; 请求参数=”; 请求参数=请求参数+“”; 请求参数=请求参数+“”+用户+“”; 警报(请求参数); /*使用浏览器的Javascript DOM向Web服务发送XML/SOAP请求*/ 试一试{ ajax_request=newXMLHttpRequest(); } 捕获(trymicrosoft){ 试一试{ ajax_request=newActiveXObject(“Msxml2.XMLHTTP”); } 捕获(其他Microsoft){ 试一试{ ajax_request=newActiveXObject(“Microsoft.XMLHTTP”); } 捕获(失败){ ajax_请求=false; } } } ajax_request.open(“POST”,url,true); setRequestHeader(“内容类型”,“text/xml;charset=utf-8”); ajax\u request.onreadystatechange=receiveXML\u SOAPData; ajax_request.send(请求参数); } 函数receiveXML_SOAPData(){ if(ajax_request.readyState==4){ if(ajax_request.status==200){ 警报(ajax_request.responseText); } } }
我解决了问题,但没有使用jquery。这是我的解决办法

function sendDataAsXML_SOAP() {
        var req_params = "", url = "", number = 0, type = "";
        /* Configure Parameters */
        url = "http://localhost/TempWS/MachineHistoryWS.asmx";
        user = "129272802615082804";

        req_params = "<?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/\">";
        req_params = req_params + "<soap:Body><ReleaseUser>";
        req_params = req_params + "<credentials>" + user + "</credentials></ReleaseUser></soap:Body></soap:Envelope>";
        alert(req_params);
        /* Send XML/SOAP Request To Web Service Using Browser's Javascript DOM */
        try {
            ajax_request = new XMLHttpRequest();
        }
        catch (trymicrosoft) {
            try {
                ajax_request = new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch (othermicrosoft) {
                try {
                    ajax_request = new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch (failed) {
                    ajax_request = false;
                }
            }
        }
        ajax_request.open("POST", url, true);
        ajax_request.setRequestHeader("Content-Type", "text/xml;charset=utf-8");
        ajax_request.onreadystatechange = receiveXML_SOAPData;
        ajax_request.send(req_params);
    }

    function receiveXML_SOAPData() {
        if (ajax_request.readyState == 4) {
            if (ajax_request.status == 200) {
                alert(ajax_request.responseText);

            }
        }
    }
函数sendDataAsXML\u SOAP(){ var req_params=“”,url=“”,number=0,type=“”; /*配置参数*/ url=”http://localhost/TempWS/MachineHistoryWS.asmx"; user=“129272802615082804”; 请求参数=”; 请求参数=请求参数+“”; 请求参数=请求参数+“”+用户+“”; 警报(请求参数); /*使用浏览器的Javascript DOM向Web服务发送XML/SOAP请求*/ 试一试{ ajax_request=newXMLHttpRequest(); } 捕获(trymicrosoft){ 试一试{ ajax_request=newActiveXObject(“Msxml2.XMLHTTP”); } 捕获(其他Microsoft){ 试一试{ ajax_request=newActiveXObject(“Microsoft.XMLHTTP”); } 捕获(失败){ ajax_请求=false; } } } ajax_request.open(“POST”,url,true); setRequestHeader(“内容类型”,“text/xml;charset=utf-8”); ajax\u request.onreadystatechange=receiveXML\u SOAPData; ajax_request.send(请求参数); } 函数receiveXML_SOAPData(){ if(ajax_request.readyState==4){ if(ajax_request.status==200){ 警报(ajax_request.responseText); } } }
由于您的示例中只有不到50行,您能给我们一个提示吗?您的实际页面第186行的代码是什么?:)它在进入函数CallService()时发生。关于发送我的参数,您能说些什么?是否正确?这到底是如何涉及Silverlight的?它是一个Silverlight应用程序,但在到达应用程序_Exit()之前,我需要在浏览器事件关闭时调用webservice方法,因为在您的示例中只有不到50行,您能给我们一个提示吗?在实际页面的第186行是什么代码?:)它在进入函数CallService()时发生。关于发送我的参数,您能说些什么?是否正确?这到底是如何涉及Silverlight的?它是一个Silverlight应用程序,但在到达应用程序_Exit()之前,我需要在浏览器事件关闭时调用webservice方法