Javascript JQuery:调用Web服务
我正在开发一个SilverLight应用程序,在浏览器关闭事件中,我需要执行一个web服务调用。我有一个web服务方法,它接受一个参数。当用户单击浏览器关闭事件时。我将调用doRelease()函数。releaseuser方法需要参数usertoken 调用jQuery函数CallService()时出错 电话:186 错误:应为对象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");
这看起来有点奇怪:-
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方法