我很困惑为什么会这样.
我似乎无法通过$.ajax成功地传递数据,URL被全部弄乱了,而不是在查询字符串中传递了数据.
为了简洁起见,我已经清理了代码,请参见下文.
网络服务(使用GET)
[WebMethod]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public string TestMethod(string country, string city)
{
return country + city;
}
jQuery的
$.ajax({
url: "Test.asmx/TestMethod",
type: "GET",
data: '{"country":"' + country + '","city":"' + city + '"}',
dataType: "json",
success: function(msg) {
alert(msg.d);
}
});
结果URL和错误(在Firebug中)
http://example.com/Test.asmx/TestMethod?{%22country%22:%22NZ%22,%22city%22:%22AK%22}
system.invalidOperationException: Missing parameter: country.
解决方法:
尝试改变
数据:'{“ country”:“’国家’”,“城市”:“’城市’”}’
至
数据:“ country =”国家“& city =”城市