application/json和application/x-www-form-urlencoded有什么区别?

两者有什么区别

请求。ContentType = "application/json;charset = utf-8";

而且

webRequest。ContentType = "application/x-www-form-urlencoded";

167419 次浏览

第一种情况是告诉web服务器你正在发布JSON数据:

{"Name": "John Smith", "Age": 23}

第二种情况是告诉web服务器你将在URL中编码参数:

Name=John+Smith&Age=23

webRequest。ContentType = "application/x-www-form-urlencoded";

  1. 应用程序/ x-www-form-urlencoded的名字从何而来?

    如果你发送HTTP 得到请求,你可以使用如下查询参数:

    http://example.com/path/to/pagename = ferret&颜色=紫色

    字段的内容被编码为查询字符串。应用程序/ x-www-form - <代码> Urlencoded 的名称来自前面的url查询参数,但查询参数为 在请求体中,而不是url.

    整个表单数据作为一个长查询字符串发送。查询字符串包含name- > . value对,由,字符分隔

    例如field1 = value1& field2 = value2 < / p >

  2. 它可以被简单的请求称为simple - 不要触发飞行前检查

    简单请求必须有一些属性。你可以查看在这里获取更多信息。之一 简单来说,Content-Type头只允许有三个值 请求< / p >
    • 应用程序/ x-www-form-urlencoded
    • 多部分/格式
    • 文本/平原
    • 李< / ul > < / >

3.对于大多数平坦的参数树,application/x-www-form-urlencoded是经过尝试和测试的。

请求。ContentType = "application/json; "charset = utf - 8”;

  1. 数据将是json格式。

axios是两个比较流行的npm HTTP库,默认情况下使用JSON体。

{
"id": 1,
"name": "Foo",
"price": 123,
"tags": [
"Bar",
"Eek"
],
"stock": {
"warehouse": 300,
"retail": 20
}
}
  1. “application / json” Content-Type是起飞前的请求

现在,如果请求不是简单的请求,浏览器会自动在原始请求之前通过选项方法发送一个HTTP请求,以检查发送原始请求是否安全。如果可以,就发送实际请求。你可以查看在这里获取更多信息。

  1. application / json是初学者友好的。URL编码的数组可能是一个噩梦!

两者之间最大的区别之一是JSON编码post通常会保留发送的值的数据类型(只要它们是有效的JSON数据类型),而application/x-www-form-urlencoded通常会将所有属性转换为字符串。

例如,在json编码的帖子中:

{"Name": "John Smith", "Age": 23}

服务器很可能将Age属性解析为整数23。

而在

Name=John+Smith&Age=23

服务器很可能将Age解析为字符串“23”。

当然,如果您使用其他层来解析这些值并将它们转换为适当的类型,这可能不是问题。