2011-11-07 32 views
8

私はWebMethod属性にjQueryのから2パラメータを送信し、複数のparamsを使用しているとき、私はこのエラーを得たのjQueryでは"メッセージ": "無効なWebサービス呼び出し、パラメータの欠損値: u0027

{"Message":"Invalid web service call, missing value for parameter: \u0027haha\u0027.","StackTrace":" at System.Web.Script.Services.WebServiceMethodData.CallMethod(Object target, IDictionary`2 parameters)\r\n at System.Web.Script.Services.WebServiceMethodData.CallMethodFromRawParams(Object target, IDictionary`2 parameters)\r\n at System.Web.Script.Services.RestHandler.InvokeMethod(HttpContext context, WebServiceMethodData methodData, IDictionary`2 rawParams)\r\n at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.InvalidOperationException"} 

:。

[WebMethod()] 
     public static string test1cai(string haha, string tuan) 
     { 
      return "Hi, "+haha + tuan; 
     } 

どのように私はそれを解決することができますか? おかげで皆さんを背後にあるコードで

$(".txtNoiDung").focusout(function() { 
     $.ajax({ 
      type: "POST", 
      url: "QuanLyTin.aspx/test1cai", 
      data: JSON.stringify({ hahas: $(this).val(),tuans: "hahaha" }), 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (msg) { 
       $("#vltxtNoiDung").text(msg.d) 
      }, 
      error: function (xhr, reason, ex) { 
       alert(reason); 
      } 
     }); 
    }); 

答えて

32

あなたのサービスがhahatuanという名前のパラメータを受け入れているが、あなたのJavaScriptがhahastuansに渡しています。また、

data: JSON.stringify({ haha: $(this).val(),tuan: "hahaha" }), 

、大文字と小文字の区別とクライアント側およびサーバ側の間にこれらのパラメータが非常に一致していることに注意してください:両方から「s」を削除します。

4

JavaScriptオブジェクトのプロパティ名は、適切にバインドできるように、Webサービスメソッドのパラメータの名前と一致する必要があります。現在持っている:

{ hahas: $(this).val(),tuans: "hahaha" } 
おそらくあるべき

{ haha: $(this).val(), tuan: "hahaha" } 
0

あなたのAjax呼び出し

データでは、コードbehinedto内の関数から同じ方法でパラメータを渡すべきである:「{ 『笑』:「」+ 『データ』 + 『トゥアン』: ' "+ "あなたのデータ" + "」}"

  • のような空白があってはならない 'トゥアン'
関連する問題