2016-05-02 27 views
1

初めてAJAXを使用していますが、正しい構文がないかどうかはわかりません。基本的には、2つの文字列パラメータを取り、ユーザーのパスワードを更新するメソッドをバックコードで使用しています。しかし、それは失敗として戻ってくる。ここでJQuery AJAXリクエストが機能しません。

は私の現在のASPボタンです:

<td><asp:Button ID="Button1" runat="server" Text="Add Password" alt="Add Password" /></td> 

これは、ユーザーがフォームに追加パスワードのボタンを押した後に実行するコードです:

$("#edit_password_form").submit(function (e) { 
         e.preventDefault(); 

         var finalValue = value2.value; 

         <%string inputCust = Session[SessionKey.CUSTOMER_ID].ToString();%> 
         var custNoString = <%=inputCust%> 

         $.ajax({ 
          url: 'reciept.aspx/Button1_Click', 
          method: 'post', 
          contentType: 'application/json', 
          data: '{custID:' + custNoString + 'tempPass2:' + finalValue + '}', 
          success: function(){ 

           alert("The function worked correctly"); 

          }, 
          error:function(){ alert("the function did not succeed");} 
         }); 
        });; 

それができる理由上の任意のアイデアは、失敗した? Mayb私はajaxキーがないか、シンタックスがオフになっている可能性があります。

私に教えてください!ありがとう。

+2

データを文字列として渡すのではなく、オブジェクトとして渡すようにしてください。 'データ:{custID:custNoString、tempPass2:finalValue}' –

+1

サイドノート:送信ボタンの代わりに通常のボタンを使用することを検討してください。ボタンクリックイベントで関数を呼び出します。これにより 'e.preventDefault()'を取り除くことができます。 –

答えて

1

データパラメータが適切にJSONを作成した必要このリンクを確認してください。あなたはここで一重引用符で欠けている。

JSON文字列を手動で作成する代わりに、オブジェクトを最初に作成してから、データを文字列化してみてください。

$("#edit_password_form").submit(function (e) { 
         e.preventDefault(); 

         var finalValue = value2.value; 

         <%string inputCust = Session[SessionKey.CUSTOMER_ID].ToString();%> 
         var custNoString = <%=inputCust%> 

         var dataObj = {}; 
         dataObj.custID = custNoString; 
         dataObj.tempPass2 = finalValue; 

         $.ajax({ 
          url: 'reciept.aspx/Button1_Click', 
          method: 'post', 
          contentType: 'application/json', 
          data: JSON.stringify(dataObj), 
          success: function(){ 

           alert("The function worked correctly"); 

          }, 
          error:function(){ alert("the function did not succeed");} 
         }); 
        });; 
+0

私はデータデータを追加しました:JSON.stringify({custID1:dataObj.custID1、tempPass2:dataObj.tempPass2})これは正しいでしょうか? – Learn12

1

データをポストするための正しい構文ではありません。data: '{custID:' + custNoString + 'tempPass2:' + finalValue + '}'

は、それ以外の場合は動作しないはずですJSON形式でこのようdata: { custID: custNoString, tempPass2: finalValue }

をあなたのデータを渡すためにしてみてください。

よりhttp://www.json.org/JSONRequest.html

+0

Nazmul、json形式でアポストロフィを使用する必要がありますか? – Learn12

+0

はベストな余裕を得なければなりません –

0

(OPに代わって答えとして投稿):以下のコードを参照してください。

これは私のために働いてしまったものです:最初のデータ・オブジェクトを作成する

// Create the data object for the 2 parameters for the c# Method 

        var dataObj = { custID1: custNoString, tempPass2: finalValue }; 



        // AJAX request for run the function 

        $.ajax({ 

         type: 'post', 

         url: 'reciept.aspx/Button1_Click', 

         contentType: 'application/json; charset=utf-8', 

         data: JSON.stringify(dataObj), 

         success: function(){ 



          alert("The function worked correctly"); 

         }, 

         error:function(){ alert("the function did not succeed");} 

        }); 

が鍵となりました。ご協力いただきありがとうございます。

関連する問題