我有一个足够简单的网络服务:
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
[WebMethod]
public string GetToken(string a)
{
}
我使用 JQuery 将其称为客户端:
$.ajax({
post: 'GET',
contentType: "application/json; charset=utf-8",
dataType: 'json',
url: '../url/GetToken',
data: "{'a':'test'}",
success: function (data) {
},
error: function (a, b, c) {
}
});
调用总是失败,返回的错误是 500 Internal Server Error。我在 web 服务中放置了一个断点,并且根本没有到达代码。当我修改 Web 服务以完全不接受任何参数(并data
从 JQuery 调用中删除元素)时,调用成功。我玩过不同的方式来传递data
元素;我已经传递了一个 JSON 对象(没有引号),并且我已经从a
参数周围删除了引号。它都不起作用。
编辑:
使用 Fiddler,我确定导致 500 的实际错误是“无效的 Web 服务调用,参数缺失值”。
编辑2:
以这种方式传递数据有效:
data: "a='test'"
我不知道为什么。有任何想法吗?