2011-11-07 18 views
8

i WebMethod için jQuery 2 parametre göndermek ve birden params kullanırken bu hata var jQuery yılında"Mesaj": "Geçersiz web hizmeti çağrısı, parametresi için eksik değer: 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; 
     } 

arkasında kodunda

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

bunu nasıl çözebilir? siz teşekkür ederiz.

cevap

32

Servis haha ve tuan adlı parametrelerini kabul ediyor, ancak JavaScript hahas ve tuans yılında geçiyor. hem "s" Kaldır:

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

Ayrıca unutmayın ki küçük harf duyarlılığı ile müvekkil ve sunucu tarafında arasında bu parametreler çok maç.

4

JavaScript nesnesi özellik adlarınız, web hizmeti yöntemindeki parametrelerin adlarıyla eşleşmelidir, böylece uygun şekilde bağlanabilirler. Şu anda var:

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

muhtemelen olması gereken:

{ haha: $(this).val(), tuan: "hahaha" } 
0
Kodun behinedto içinde işlevinden aynı yöntem parametresi geçirerek gereken

, senin Ajax

verileri çağırır: "{ 'haha': '" + 'veri' + 'tuan'ın':' "+ "veri" + "'}"

  • gibi hiçbir boşluk olmamalıdır 'tuan'a'
İlgili konular