使用 Jquery 发送 Json 数据的正确姿势

·37 字·1 分钟
Javascript Jquery json
n3xtchen
作者
n3xtchen
Sharing Funny Tech With You

让我们先从错误的姿势开始:

var json = {"name": "I have space"};
$.post('some_url_need_json', json)

首先这两条语句有两个细节需要注意

  • 默认,POSTContent-Type 长这样:

      Content-Type: application/x-www-form-urlencoded; charset=UTF-8
    
  • JSON 在发送的过程中会被 URLEncode 掉,变成这样:

      name=I+have+space
    

当然,前后端都是自己部门开发,相互协调都不会出现问题;但是,记住但是如果使用外包或者开源组件的就会把你坑到死。

为了严谨(借用我一同事的名言), 我们要这么做:

$.ajaxSetup({contentType: "application/json; charset=utf-8"});
$.post('some_url_need_json', JSON.stringify(json))
  • $.ajaxSetup: 配置请求的头信息;
  • JSON.stringify: 避免发送的内容被 URLEncode 掉。