post 请求的 content-type

一般来说,一个普通的get请求是不需要指定content-type的,因为一个普通的get请求属于简单结构,它一般携带的数据直接拼接在URL的尾部。

Content-Type: application/json

  1. json 字符串, 需要设置成 application/json
  2. json 对象,Content-Type 不能设置为 application/json,需使用默认的类型(application/x-www-form-urlencoded,为什么?这种类型最后还是会把 json 对象类型的参数转为 user=username&pass=password 这种形式后再发送,需要明白一点:这种转换时只能识别 json 对象类型,不能识别 json 字符串类型。

application/x-www-form-urlencode

这种格式的特点就是,key/value 组成一组,每组之间用 & 联接,而 key 与 value 则是使用 = 连接。比如: www.baidu.com/query?user=username&pass=password 这是 GET 请求, 而 POST 请求则是使用请求体,参数不在 url 中,在请求体中的参数表现形式也是: user=username&pass=password 的形式,这里面有一个,就是它里面包含 + 时需要转义成 %2B 否则服务端会将 + 替换成空格 ,导致数据解析错误。

参考:

get与post与Content-Type的笔记 - 兜里还剩五块出头 - 博客园

POST提交数据之---Content-Type的理解; - 龙恩0707 - 博客园

你可能感兴趣的:(js,json,java,servlet)