Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net AJAX将数据发布到asmx WebService方法始终为空_Asp.net_Ajax_Vb.net_Asmx - Fatal编程技术网

Asp.net AJAX将数据发布到asmx WebService方法始终为空

Asp.net AJAX将数据发布到asmx WebService方法始终为空,asp.net,ajax,vb.net,asmx,Asp.net,Ajax,Vb.net,Asmx,我正在运行一个带有测试方法(重命名文件)的web服务。 使用Ajax(客户端),我能够调用我的服务上的函数 但是当我向我的方法发送Int、String..或其他任何东西时,数据显示为“null”; 有什么问题吗 我的javascript: $.ajax({ url:“webserviceest.asmx/NewId”, 类型:“POST”, contentType:“应用程序/json;字符集=utf-8”, //数据:JSON.stringify({rename:newName}), 数据

我正在运行一个带有测试方法(重命名文件)的web服务。 使用Ajax(客户端),我能够调用我的服务上的函数

但是当我向我的方法发送Int、String..或其他任何东西时,数据显示为“null”; 有什么问题吗

我的javascript:


$.ajax({
url:“webserviceest.asmx/NewId”,
类型:“POST”,
contentType:“应用程序/json;字符集=utf-8”,
//数据:JSON.stringify({rename:newName}),
数据:“{Id':8}”,
数据类型:“json”,
成功:功能(数据){
警报(数据d);
}

});ASMXWeb服务使用SOAP,因此您需要在SOAP负载内发送消息。尝试按以下方式发送您的邮件:

data: '<soap:envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">' +
  '<soap:body>' +
  '<newid xmlns="WebServiceTest.asmx/NewId">' +
  '<id>' + id + '</id>' +
  '</newid>' +
  '</soap:body>' +
  '</soap:envelope>',
beforeSend: function (xhr) {
  xhr.setRequestHeader('SOAPAction', 'WebServiceTest.asmx/NewId');
},
数据:“”+
'' +
'' +
“+id+”+
'' +
'' +
'',
发送前:函数(xhr){
setRequestHeader('SOAPAction','WebServiceTest.asmx/NewId');
},

Http请求的参数为。因此,正如@Maurits van Beusekom在评论中指出的,您似乎没有正确发送数据:数据应该是
数据:“{id':8}”
,而不是
数据:“{id':8}”
,如下所示:

 $.ajax({
    url: "WebServiceTest.asmx/NewId",
    type: "POST",
    contentType: "application/json; charset=utf-8",
    data: "{ 'id': 8 }",
    dataType: "json",
    success: function (data) {
        alert(data.d);
    }
});

这可能是大小写问题,您是否尝试过将JSON消息的
Id
参数更新为小写?webservice方法的参数名是用小写字母定义的,但是在JSON消息中,它以大写字母“I”开头。可以尝试使用以下JSON消息
{'id':8}
。ASMX web服务也可以使用
HttpPost
调用,因此您不需要只使用SOAP。这与SOAP有什么关系?这个答案是关于GET动词的。