正确的前端传后台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/

你可能感兴趣的:(小技术,struts)