ajax交互post数据格式问题

SOASPX 31175 0

前后端数据交互主要有两种方式:get和post。其他restful风格的请求数据格式本质上都可以转为这两种形式,本文暂不讨论。

网址输入请求,超链接访问等都是get请求,请求数据格式固定单一,都是附加在url后面,中文和非ASII字符需要和后端协定统一编码,其他情况下如果参数形式拼接正确一般不会出问题。

post请求相对较复杂,本文重点论述。

post请求数据格式一般有以下几种方式:

ajax交互post数据方案一

不指定enctype。请求数据string(json格式)且数据没被编码。server端可以通过在controller方法中用Gson或者Jackson进行正常解析。


ajax交互post数据格式问题-第1张图片-.net教程网
ajax交互post数据格式问题-第2张图片-.net教程网

ajax交互post数据方案二

不指定enctype。请求数据对象且被编码。server端在controller方法中,需要通过stream reader方式获取,然后解析成对象使用。有一次看到群里有人问请求数据乱码,后端普通注解方式获取不到数据对象,不知如何解析就属于这种类型。 此种方法不推荐。

ajax交互post数据格式问题-第3张图片-.net教程网

总结

上述两种都没指定enctype,也没手动编码数据格式。(contentType默认: "application/x-www-form-urlencoded") 发送信息至服务器时内容编码类型。默认值适合大多数应用场合。告诉服务器从浏览器提交过来的数据格式。默认contentType server端框架封装处理好了,能通过getParameter或者注解方式正常获取。我这里显式的指定 contentType: "application/json; charset=utf-8",传递的数据对应格式不对才会出现这种问题,这是传递的时候最好传json对象。

标签: ajax实例

发表评论 (已有0条评论)

还木有评论哦,快来抢沙发吧~