http请求contentType和response:
含义:content-type:http/https发送信息至服务器时的内容编码类型,contentType用于表示发送数据流的类型,服务器根据编码类型使用特定的解析方式。content-type既可以是客户端告知服务端发送请求的内容编码,也可以是服务端告知客户端响应回来的内容是什么类型的编码;
大白话就是告诉接收端传递的内容主体是什么。
常用类型:1. application/json: 告知接收端发送的json对象🌿参数以序列化后的json字符传传递参数:JSON.Stringify(data)
2. application/x-www-fom-urlencoded: 表单形式的请求头,告知接收端发送的是form表单的数据, 🌿会以key1=val1&key2=val2 的方式进行编码
3. multipart/form-data: 1⃣️参数会被分割成多快,没一个参数都有自己独立的content-type2⃣️上传文件类型🌿既可以上传二进制数据(图片,mp3,文件),也可以上传键值对。🌿传输的数据的body必须是formData实例
content-type:
1.主类型是text
text/html : HTML格式
text/plain :纯文本格式
text/xml : XML格式(忽略xml头所指定编码格式而默认采用us-ascii编码)
image/png: png图片格式
2.主类型是application
application/xhtml+xml :XHTML格式
application/xml : XML数据格式(根据xml头指定的编码格式来编码)
application/json : JSON数据格式
application/octet-stream : 二进制流数据(如常见的文件下载)
二:响应responseType
responseType | xhr.response数据类型 | 说明 |
---|---|---|
“ ” | string字符串 | 默认值 |
“text” | string字符串 | |
“document” | document对象 | 返回xml格式数据时使用 |
“json” | javascript对象 | 兼容性问题,IE10/11不支持 |
“blob” | Blob对象 | |
“arrayBuffer” | ArrayBuffer对象 |
例子:
var formData = new FormData();
formData.append('username', 'johndoe');
formData.append('id', 123456);
//创建xhr对象
var xhr = new XMLHttpRequest();
//设置xhr请求的超时时间
xhr.timeout = 3000;
//设置响应返回的数据格式
xhr.responseType = "text";
//创建一个 post 请求,采用异步
xhr.open('POST', '/server', true);
//注册相关事件回调处理函数
xhr.onload = function(e) {
if(this.status == 200||this.status == 304){
alert(this.responseText);
}
};
xhr.ontimeout = function(e) { ... };
xhr.onerror = function(e) { ... };
xhr.upload.onprogress = function(e) { ... };
//发送数据
xhr.send(formData);
三: content-Disposition
http请求中的content-Disposition:
一般用在文件“保存为”时使用;通过的写法: content-Disposition: attachment;filename='filename.text';
attachment: 说明文件是以附件的形式下载,默认不会在浏览器中打开,而是会存在本地;
filename:文件的名称