jquery中$.ajax方法提交表單


  1. function postdata(){                        //提交數據函數   
  2.     $.ajax({                                //調用jquery的ajax方法   
  3.         type: "POST",                       //設置ajax方法提交數據的形式   
  4.         url: "ok.php",                      //把數據提交到ok.php   
  5.         data: "writer="+$("#writer").val(), //輸入框writer中的值作為提交的數據   
  6.         success: function(msg){             //提交成功后的回調,msg變量是ok.php輸出的內容。   
  7.             alert("數據提交成功");            //如果有必要,可以把msg變量的值顯示到某個DIV元素中   
  8.         }   
  9.     });   
  10. }  

jquery手冊描述:
data 發送到服務器的數據。將自動轉換為請求字符串格式。GET 請求中將附加在 URL 后。查看 processData 選項說明以禁止此自動轉換。必須為 Key/Value 格式。如果為數組,jQuery 將自動為不同值對應同一個名稱。如 {foo:["bar1", "bar2"]} 轉換為 '&foo=bar1&foo=bar2'。
示例:

 
  1. $.ajax({   
  2.     type: "POST",   
  3.     url: "some.php",   
  4.     data: "name=John&location=Boston",   
  5.     success: function(msg){   
  6.         alert( "Data Saved: " + msg );   
  7.     }   
  8. });  

這里data后面跟的參數可以用二種表式:一種是普通url傳參的寫法一樣,還有一種就是寫在json數組里,
上面示例data部分也可以這樣寫:data: {name:"John",location:"Boston"}。這二個用法有什么區別?

今天在開發中發現二者用法的細微差別。第一種我們用url傳參,參數里面如果加帶"&"這個符號的話,可能參數接收不到或不完整,如“ data: "name=John&location=Boston",”,

如果name的值是"john&smith"這樣寫可能就會有問題,我們可以用JS里面的encodeURIComponent()方法進行轉義,

但如果用data: {name:"John",location:"Boston"}這種方式寫的話就不需要進行轉義,如果轉義的話,接收的將是轉義后的字符串


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM