2011-08-31 10 views
5

jquery.ajax経由で文字列を含むjavascript変数をサーバーに渡しています。 「成功」条件が呼び出されたにもかかわらず、サーバー側のWebメソッドは呼び出されません。クライアント:WebMethodが呼び出されていない

$.ajax({ 
      type: "post", 
      url: "Playground.aspx/childBind", 
      data: {sendData: ID}, 
      //contentType: "application/json; charset=utf-8", 
      dataType: "text", 
      success: function (result) { alert("successful!" + result.d); } 
     }) 

サーバー:

[WebMethod] 
    public static string childBind(string sendData) 
    { 
     return String.Format("Hello"); 
    } 

答えて

6

あなたのAjaxリクエストのための修正を次試してみてください。

$.ajax({ 
      type: "post", 
      url: "Playground.aspx/childBind", 
      data: "{sendData: '" + ID + "'}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (result) { alert("successful!" + result.d); } 
     }) 

通知は、文字列としてdataTypedata値を変更しました。

0

「ID」(または別のフィールド)文字列のデータエラーに、= 'などの引用符が含まれています。 は、この問題を解決:

var DTO = {'sendData': ID}; 

       $.ajax({ 
        "type": "POST", 
        "dataType": 'json', 
        "contentType": "application/json; charset=utf-8", 
        "url": sSource, 
        "data": JSON.stringify(DTO), 
        "success": function (msg) { 
         //do something 
        } 
       }); 
0

は次のように試してみてください: はJQuery:

   var dataString = JSON.stringify({ 
        contractName: contractName, 
        contractNumber: contractNumber 
       }); 

       $.ajax({ 
        type: "POST", 
        url: "CreateQuote.aspx/GetCallHistory", 
        data: dataString, 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        success: function (result) { 
         alert(result); 
          OpenLightBox('divDelete'); 

        } 
       }); 

ASPX.CS:

 [System.Web.Services.WebMethod] 
     public static string GetCallHistory(string contractName, string contractNumber) 
     { 
      return "Nalan"; 
     } 
関連する問題