正確的前端傳後臺json方式

DEMO:

var data=JSON.stringify({"page": {"pagenow": 1,"pagesize": 20},"file":{"name":"jpg"},"catalogs":[{"id":1},{"id":2}]});
        $.ajax({
            type:"POST",
            url:"//訪問的url",
            data:data,
            contentType:"application/json", 
            success:function(data){
                //顯示數據
            }
        });

注意:

一、contentType

contentType,可以是application/x-www-form-urlencoded這種默認類型的,不過當後臺有struts等框架的話,會在action之前攔截請求,並把request body 裏面的值都讀出來,導致我們不能再request裏面讀取到值,只能依賴struts的domain model
所有如果有後臺用這種機制的話,那就需要更改contentType:application/json,這樣子strust就不會攔截請求了

二、stringify和parseJSON

這兩種方法不能亂用,一不小心的話就會導致後臺解析不了數據,正確的用法在上面。
stringify是將Json轉義,parseJSON是將json去除轉義並解析成對象
總結

前端傳後臺json,應該傳字符串過去,不能傳Object對象,而且要適當指定contentType

查看原文:
http://139.129.55.235/2016/05/30/%e6%ad%a3%e7%a1%ae%e7%9a%84%e5%89%8d%e7%ab%af%e4%bc%a0%e5%90%8e%e5%8f%b0json%e6%96%b9%e5%bc%8f/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章