和有什么区别
request.ContentType = "application/json; charset=utf-8";
和
request.ContentType = "application/x-www-form-urlencoded";
和有什么区别
request.ContentType = "application/json; charset=utf-8";
和
request.ContentType = "application/x-www-form-urlencoded";
第一种情况是告诉 Web 服务器您正在发布 JSON 数据,如下所示:
{"Name": "John Smith", "Age": 23}
第二种情况是告诉 Web 服务器您将对 URL 中的参数进行编码:
Name=John+Smith&Age=23
webRequest.ContentType = "应用程序/x-www-form-urlencoded";
application/x-www-form-urlencoded的名称来自哪里?
如果发送 HTTP GET请求,可以使用如下查询参数:
http://example.com/path/to/page
?名称=雪貂&颜色=紫色
字段的内容被编码为查询字符串。的application/x-www-form-
urlencoded
名称来自之前的 url 查询参数,但查询参数位于请求正文而不是 url 的位置。
整个表单数据作为长查询字符串发送。查询字符串包含由&字符分隔的名称-值对
例如 field1=value1&field2=value2
它可以是简单的请求,称为简单 -不要触发预检检查
简单请求必须具有一些属性。你可以在这里查看更多信息。其中之一是简单请求的 Content-Type 标头只允许三个值
3.对于大多数平面参数树,application/x-www-form-urlencoded 已经过试验和测试。
request.ContentType = "应用程序/json; charset=utf-8";
axios和superagent是两个更流行的 npm HTTP 库,默认情况下使用 JSON 正文。
{ "id": 1, "name": "Foo", "price": 123, "tags": [ "Bar", "Eek" ], "stock": { "warehouse": 300, "retail": 20 } }
现在,如果请求不是简单请求,浏览器会通过OPTIONS方法自动在原始请求之前发送一个 HTTP 请求,以检查发送原始请求是否安全。如果没问题,然后发送实际请求。你可以在这里查看更多信息。
两者之间最大的区别之一是对帖子进行 JSON 编码通常会保留发送的值的数据类型(只要它们是有效的 JSON 数据类型),而 application/x-www-form-urlencoded 通常会保留将所有属性转换为字符串。
例如,在 JSON 编码的帖子中:
{"Name": "John Smith", "Age": 23}
服务器很可能会将 Age 属性解析为整数 23。
而在
Name=John+Smith&Age=23
服务器很可能会将 Age 解析为字符串“23”。
当然,如果您使用其他层来解析这些值并将它们转换为适当的类型,这可能不是问题。