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