2009-11-05 27 views
0

我有這個地方edit_FName & edit_LName代表asp.net文本框:需要阿賈克斯的Json提交允許單引號和雙引號

$.ajax({ 
      type: "POST", 
      url: document.URL + "/EditName", 
      data: "{fName:'" + edit_FName.val() + "'" + 
        ",lName:'" + edit_LName.val() + "'}", 

,我需要它,以允許在名稱單引號和雙引號。我有點不知道我需要使用stringify,但我無法讓它按照我想要的方式行事。我想:

$.ajax({ 
       type: "POST", 
       url: document.URL + "/EditName", 
       data: "{fName:'" + JSON.stringify(edit_FName.val()) + "'" + 
         ",lName:'" + JSON.stringify(edit_LName.val()) + "'}", 
       etc... 

但是,這並不在所有的工作,所以我想我沒有的,我應該怎樣使用字符串化放在一起的數據的理解。

回答

2

我想你想要的這裏是

... 
data: JSON.stringify({fName:edit_FName.val(), 
         lName:edit_LName.val()}), 
... 
0

一個問題是你需要引用fName,例如。

$.ajax({ 
      type: "POST", 
      url: document.URL + "/EditName", 
      data: "{'fName':'" + edit_FName.val() + "'" + 
        ",'lName':'" + edit_LName.val() + "'}", 
+0

是的 - 這只是一個錯字。我的實際表格有大約10個字段,所以我剛剛刪除了一堆,以更好地解決問題,並意外刪除了一個報價。 – HighHat 2009-11-05 22:13:35

0

如何在不工作? 從看你的代碼,我的第一個猜測會出現語法錯誤。我通常通過玩弄REPL來解決/解決這些問題。嘗試Firebug。

如果您安裝了JSON庫,JSON.stringify看起來像會起作用。

我想你可以使用ajax調用的dataType:「JSON」選項來獲得相同的結果,結果代碼如下所示。

$.ajax({ 
      type: "POST", 
      url: document.URL + "/EditName", 
      dataType:"json", 
      data: {fName:edit_FName.val(), 
        lName:edit_LName.val()}}); 

手動去除或構建JSON數據是一個壞主意,即使這是被髮送回服務器,將不同的處理。如果你正在構建這個服務器端併發送給客戶端,這是一個很好的腳本注入機會