首頁 >web前端 >js教程 >詳解jquery中$.ajax方法提交表單_jquery

詳解jquery中$.ajax方法提交表單_jquery

WBOY
WBOY原創
2016-05-16 16:32:121289瀏覽

複製程式碼 程式碼如下:

function postdata(){                        //提交資料函數  
    $.ajax({                                     type: "POST",                       //設定ajax方法提交資料的形式化         url: "ok.php",                      //將資料提交至ok.php  
        data: "writer=" $("#writer").val(), //輸入框writer中的數值作為提交的資料  
        success: function(msg){             //提交成功後的回調,且msg變數是ok.php輸出的內容。  
            alert("資料提交成功");            //若有必要,可將msg變數的數值顯示至某DIV元素中  
        }  
    });  



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

例:

複製程式碼 程式碼如下:
$.ajax({  
    type: "POST",  
    url: "some.php",  
    data: "name=John&location=Boston",  
    success: function(msg){  
        alert( "Data Saved: " msg );  
    }  
}); 


這裡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"}這種方式寫的話就不需要進行轉義,如果轉義的話,接收的將是轉義後的字符串

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn