两者都有四部分。
1. 请求:
第一部分:
method url 协议
GET /XXX HTTP/1.0
第二部分:
Content-Type: application/x-www-form-urlencoded
等等
第三部分:
回车
第四部分:
参数
a=1&b=2
如何设置请求的四部分呢?
见代码(用XMLHttpRequest对象
实现):
let request = new XMLHttpRequest()
request.open(method, url) //设置第一部分
request.setRequestHeader('Content-Type','application/x-www-form-urlencoded') //设置第二部分,在open和send的中间使用
request.onreadystatechange = function(){
if(request.readyState === 4){ //加载成功时
if(request.status >=200 && request.status < 300){
console.log('success')
}else if( request.status >= 400){
console.log('error')
}
}
}
request.send(body) //设置第四部分,只有method为POST时,才需要设置body,如果是GET,设置了body也不会显示
2. 响应:
第一部分:
协议 + request.status + request.statusText
HTTP/1.0 200 OK
第二部分:
Content-Type: text/html;charset=utf-8
等等
第三部分:
回车
POST
才有的第四部分:
<!Doctype html>
<html>……</html>
那么如何获取相应的四部分呢?
见代码(和请求的代码一起的,就简略写了一下):
//获取响应的第一部分:
request.status //200
request.statusText //ok
//获取响应的第二部分 – 响应头:
request.getAllResponseHeaders() //获取所有的响应头,返回一个字符串
request.getResponseHeader(‘Content-Type’) //获取响应头Content-Type的内容
//获取响应的第四部分:
request.responseText //获取响应的第四部分的内容
网友评论