私は十分に単純なWebサービスを持っています:
[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 InternalServerErrorです。Webサービス内にブレークポイントを設定しましたが、コードにまったく到達していません。引数をまったく受け取らないように(そしてdata
JQuery呼び出しから要素を削除するように)Webサービスを変更すると、呼び出しは成功します。data
私は要素を渡すためにさまざまな方法で遊んできました。JSONオブジェクト(引用符なし)を渡し、a
引数の前後から引用符を削除しました。どれも機能しません。
編集:
Fiddlerを使用して、500の原因となる実際のエラーは「無効なWebサービス呼び出し、パラメーターの値がありません」であると判断しました。
編集2:
この方法でデータを渡すと、次のように機能します。
data: "a='test'"
理由はわかりません。何か案は?