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