我有一个json数据数组值名称“datavalue”,并尝试将此值发送到我的webmethod。我尝试搜索,但到目前为止我无法得到任何答案,我搜索的越多,我就越多。或者我的代码可能有问题。
这是我的ajax帖子:
$.ajax({
url: "WebService.asmx/GetValue",
type: "POST",
data: datavalue,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
var data = jQuery.parseJSON(msg);
if (!data.error) {
alert("Works!");
}
else {
alert("Error" + " " + data.error);
}
},
error: function (msg) {
alert('Error: ' + msg);
}
我的数据值:(我通过firebug得到这个值
datavalue = country_1=Singapore&city_1=Kathmandu&postal_code_1=sa&country_2=Singapore&city_2=Singapore&postal_code_2=sa&length_1=sa&width_1=sa&height_1=sa&weight_1=sa&length_2=&width_2=&height_2=&weight_2=&contact_name=f&contact_number=f&email=f&address=t&post_code=f&city=Singapore
这是我的网络服务。
<WebMethod()> _
Public Shared Function GetValue(ByVal datavalue As Object) As Object
Return datavalue
End Function
我是json中的新手,也是webservice中的新手。 提前谢谢你
答案 0 :(得分:0)
好吧,我有点不确定出了什么问题 - 但我猜你的函数返回值是没有的。
不要使用对象作为函数的参数,而是尝试使用列表。
例如:
<WebMethod()> _
Public Shared Function GetValue(values As List(Of String)) As List(Of String)
Return datavalue
End Function
同时强>
尝试在ajax调用中设置traditional: true
设置。这将设置传统的param序列化。
$.ajax({
url: "WebService.asmx/GetValue",
type: "POST",
data: datavalue,
contentType: "application/json; charset=utf-8",
dataType: "json",
traditional: true,
success: function (msg) {
var data = jQuery.parseJSON(msg);
if (!data.error) {
alert("Works!");
}
else {
alert("Error" + " " + data.error);
}
},
error: function (msg) {
alert('Error: ' + msg);
}