Jquery ajax webservice 只要有参数就出错
webservice不带参数可以正常访问,只是在默认的HelloWorld里加个参数就出错[WebMethod]
public string HelloWorld(string somebody)
{
return "Hello World";
}
Jquery代码:
$.ajax({
type: "post",
contentType: "application/json; charset=utf-8",
url: "WebService.asmx/HelloWorld",
data: "{somebody:'Krime'}",
dataType: 'json',
success: function (msg) {
alert(msg);
}
});
试过了
data: "{somebody:'Krime'}",
data: "{'somebody':'Krime'}",
data: "{\"somebody\":\"Krime\"}",
都不行
--------------------编程问答-------------------- [WebMethod]
public static string HelloWorld(string somebody)
{
return "Hello World";
}
var json = "'{\"param\":\"abc\"}'";
$.ajax({
url: "test_ajax.aspx/HelloWorld",
type: "POST",
contentType: "application/json",
data: '{ "somebody":'+ json +'}',
cache:false,
success: function (result) {
alert(result.d);
},
error: function () {
alert("error");
}
});
--------------------编程问答-------------------- $.ajax({
url: "test_ajax.aspx/HelloWorld",
type: "POST",
contentType: "application/json",
data: '{ "somebody":"abc"}',
cache:false,
success: function (result) {
alert(result.d);
},
error: function () {
alert("error");
}
});
其实这样也是可以的 --------------------编程问答-------------------- 没什么问题 就是webservice返回的数据是封装在data.d里 你应该写成alert(msg.d)
json格式{'somebody':'Krime'} 写成这样比较好这样 data:{'somebody':'Krime'} --------------------编程问答--------------------
$.ajax({
type: "post",
contentType: "application/json; charset=utf-8",
url: "WebService.asmx/HelloWorld",
data: "{somebody:'Krime'}",
dataType: 'json',
success: function (msg) {
alert(msg);
}
});
data: "{somebody:'Krime'}"
这里的 data要传递一个 json过去,而不是传递一个字符串。
data: {somebody:'Krime'}
这样就好了。
=======
另外 dataType: 'json', 这个参数的意思是,告诉jQuery,返回值的格式是json的,麻烦自动转换一下。
也就是说,你的 WebService.asmx/HelloWorld 返回值必须是一个合法的json格式的字符串。否则在jQuery自动转换的时候会报错。
--------------------编程问答-------------------- js调本地的webservice 还用ajax干什么?? http://www.cnblogs.com/manyiString/archive/2012/05/24/js4.html像这样就可以了 --------------------编程问答-------------------- alert(msg.d);
补充:.NET技术 , ASP.NET