2011-11-07 9 views
8

Mam ten błąd podczas wysyłania 2 parametru z jQuery do WebMethod i korzystania z wielu params"message": "Nieprawidłowe wywołanie serwis internetowy, brakująca wartość parametru: 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"} 

w jQuery.

$(".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); 
      } 
     }); 
    }); 

W kodzie za

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

jaki sposób można go rozwiązać? Dzięki chłopaki.

Odpowiedz

32

Usługa akceptuje parametrów nazwanych haha i tuan, ale twój JavaScript przechodzi w hahas i tuans. Usunąć „s” z obu:

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

Ponadto, należy pamiętać, że te parametry znacznie mecz pomiędzy client- i po stronie serwera z orzecznictwa wrażliwości.

4

Twoje nazwy obiektów obiektów JavaScript muszą być zgodne z nazwami parametrów w metodzie usługi internetowej, aby można je było odpowiednio powiązać. Masz aktualnie:

{ hahas: $(this).val(),tuans: "hahaha" } 

które powinny prawdopodobnie:

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

powinien być przechodzącą ten sam parametr metody z funkcji w kodzie behinedto, w Ajax zadzwonić

dane: "{ 'haha':„" + "dane" + 'Tuan':" "+ "dane" + "”}"

  • nie powinno być żadnych spacji, jak 'Tuan'
Powiązane problemy