HTTP请求POST、GET请求的数据格式(Content

您所在的位置:网站首页 请求json格式不正确怎么解决 HTTP请求POST、GET请求的数据格式(Content

HTTP请求POST、GET请求的数据格式(Content

2023-12-26 08:13| 来源: 网络整理| 查看: 265

1,Content-type

在HTTP的请求头中,可以使用Content-type来指定上传参数不同格式的请求信息。 get方法:   在url中说明情请求的资源,比如https://www.baidu.com/com?from=self&name=xx 其中?后的数据就是请求的数据,并且连接用&,get方法也可以提交表单数据,但是提交的数据在url中,其他人可以通过查看历史记录中的url来获取你提交的数据,这样很不安全.

post方法:   传输数据不在url中,而在数据段中出现,并且请求头多了Content-Type 和 Content-Length,post提交表单数据的时候比get方法更安全.

常用的Content-type的类型: 1,application/json,现在越来越多的人把它作为请求头,用来告诉服务端消息主体是序列化后的 JSON 字符串。

Content-Type: application/json 编译前的数据格式(json字符串) ‘{id:9098,name:"name"}’

使用contentType: “application/json”则data只能是json字符串

eg: let data = {id:1}; $.ajax({ url: actionurl, type: "POST", datType: "JSON", contentType: "application/json" data: JSON.Stringify(data), async: false, success: function () { } });

2, application/x-www-form-urlencoded,form表单默认的数据格式,提交的数据按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL 转码。(ajax默认的Content-Type类型)

# Request Headers Content-Type: application/x-www-form-urlencoded Accept: */* Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9 #编译前的数据格式,json形式 { id:9870, name:"name" } #编译后的数据格式,以&连接的参数形式 name=cjj&age=11

application/x-www-form-urlencoded是默认的请求头,其ajax的请求数据格式是json

eg: $.ajax({ url: actionurl, type: "POST", datType: "JSON", data: { id: nodeId }, async: false, success: function () {} })

3,multipart/form-data,对用于在表单中上传文件时,也可以上传普通数据,只需要让from的ectyle等于multipart/form-data就可以了。

# Request Header POST /adduser HTTP/1.1 Host: localhost:8030 Connection: keep-alive Content-Length: 232 Pragma: no-cache Cache-Control: no-cache Origin: chrome-extension://fdmmgilgnpjigdojojpjoooidkmcomcm User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36 Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryBRi81vNtMyBL97Rb Accept: */* Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9 # Request Payload ------WebKitFormBoundaryBRi81vNtMyBL97Rb Content-Disposition: form-data; name="name" name1 ------WebKitFormBoundaryBRi81vNtMyBL97Rb Content-Disposition: form-data; name="age" 12 ------WebKitFormBoundaryBRi81vNtMyBL97Rb-- ---------------------

这种格式的数据会有一个边界线boundary(这里就是------WebKitFormBoundaryBRi81vNtMyBL97Rb)用于分割不同的字段,为了避免与正文内容重复,boundary很长很复杂。消息主体以boundary开始,紧接着就是内容描述信息,然后是回车,最后是字段具体的内容(文本或二进制)。如果传输的是文件,还要包含文件名和文件类型信息。消息主体以boundary结束。

2,responseType

用来指定后台返回响应数据的类型。常用如下:

"" 将 responseType 设为空字符串与设置为"text"相同, 是默认类型 (实际上是 DOMString)。"text" 返回的是包含在 DOMString 对象中的文本。"document" 返回的是一个 HTML Document 或 XML XMLDocument 。"arraybuffer" 返回的是一个包含二进制数据的 JavaScript ArrayBuffer 。"blob" 返回的是一个包含二进制数据的 Blob 对象 。"json" 返回的是一个 JavaScript 对象 。这个对象是通过将接收到的数据类型视为 JSON 解析得到的。"ms-stream" 返回的是下载流的一部分 ;此响应类型仅允许下载请求,并且仅受Internet Explorer支持。

参考链接:https://blog.csdn.net/u014672511/article/details/80425808 参考链接:https://blog.csdn.net/yibowanbo/article/details/81013412



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3