2013-05-15 34 views
2
<script type="text/javascript"> 
     $('#btnregister').click(function() { 
      $.ajax({ 
       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       url: "fetchusers.asmx/RegUsers", 
       data: "{ username: '" + $("#txtuser").val() + "name: '" + $("#txtname").val() + "'}", 
       dataType: "json", 
       success: function (data) { 
        alert("Successfully register"); 
        $("#btnregclose").click(); 
       } 
      }); 
     }); 
    </script> 

<div id="registration"> 
     <fieldset> 
      <legend>Registration Form</legend> 
       <input id="txtuser" type="text" placeholder="Username" /><br /> 
       <input id="txtname" type="text" placeholder="Name" /><br /> 
       <input id="txtpass" type="password" placeholder="password" /><br /> 
       <input id="txtconfirmpass" type="password" placeholder="confirm password" /><br /> 
       <input id="btnregister" type="button" value="Register" /> 
       <input id="btnregclose" type="button" value="close" /> 
     </fieldset> 
    </div> 


[WebMethod] 
     public string RegUsers(string username, string name) 
     { 
      string response = username + name; 

      return response; 
     } 

我是Ajax的初學者jquery,我正在做運動,以提高我的知識。我的問題是,當我點擊#btn註冊它不工作。我認爲我在ajax上傳遞的參數存在問題,但我不知道它是什麼。Ajax jquery傳遞多個參數的Web服務

回答

4

試試這個:

$(document).ready(function() { 
     $('#btnregister').click(function() { 
      var obj = { username: $("#txtuser").val(), name: $("#txtname").val() }; 
      $.ajax({ 
       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       url: "fetchusers.asmx/RegUsers", 
       data: JSON.stringify(obj), 
       dataType: "json", 
       success: function (data) { 
        alert("Successfully register"); 
        $("#btnregclose").click(); 
       } 
      }); 
     }); 
    }); 

這個工作在我的本地環境。

+0

仍然不能工作 –

+0

現在好了,謝謝! –

1

使用這種語法....

data: "{ 'username': '" + $("#txtuser").val() + "', 'name': '" + $("#txtname").val() + "'}", 
+0

ifthis答案幫助ü請標記爲答案... :) –

+0

仍然沒有觸發 –

+0

whtas錯誤? –

3

而不是試圖建立由concatination的字符串時,它可能更容易做這樣的事情:

$.ajax(url, { 
    data: JSON.stringify({ 
     username: $("#txtuser").val(), 
     name: $("#txtname).val() 
    }) 
}); 

這將防止錯別字/問題如果你在你的某個領域中說逗號,可能會發生這種情況。請注意,ie7和更低版本將需要您包含名爲json2.js(github)的文件。

編輯: 此外,嘗試手動執行您的網絡服務(只需瀏覽到網址,使用海報等)。你完全有可能得到404或服務器錯誤。

編輯第2部分:在firefox中調試ajax問題的好方法是使用ctrl-shift-k打開Web控制檯。確保啓用了「網絡」,並在其下拉列表中選中了「日誌請求和響應身體」。通過這種方式,您可以看到要求返回並返回的請求。如果你沒有看到它,那麼你的JavaScript的問題,而不是阿賈克斯。另外,我看到你的點擊事件不在$(document).ready(function(){});這可能是因爲您在呈現按鈕之前附加了單擊事件。因此事件沒有附加,你甚至沒有執行ajax代碼。

+0

現在好了,謝謝! –

+0

你很精彩.... –

0

問題中的代碼是正確的,它需要簡單的解決方案。轉到yourwebservice.asmx.cs文件並取消註釋以下在課程級別給出的這一行,這將解決從jQuery或Ajax調用此webservice的問題。

[System.Web.Script.Services.ScriptService] 
相關問題