Js操作的申请与响应
GET /xxx HTTP /1.1
HOST :jack.com:8002
Content-Type:application/x-www-url-encoded
- JS 能够设置任意申请header吗
第一局部 reuqest.open( 'get','/xxx')
第二局部 request.setHeader('content-type','x-www-form-encoded')
第四局部 request .send('a=1&b=2')
2 . 能够获取任意响应header 吗?
第一局部 request,status / request.statusText
第二局部 request.getResponseHeader() / request.getAllresponsseHeaders()
第四局部 request.respondeText
HTTP 基于什么协定传输的呢
TCP 三次握手协定 /。 IP协定
server client 一次连贯经验了什么呢
1浏览器 ---2 DNS缓存 -——--3DNS 查问------- 依据域名来查问
1 浏览器读取网址,而后向DNs缓存中查问,是否有以后地址的缓存的IP
2 DNS依据网址查问,有就返回ip地址,没有就持续向下级查问,域名查问,baidu.com
3 最初查问到ip地址后返回浏览器,让浏览器去连贯这个ip
连贯就会通过TCP协定(三次牵手协定)确保单方都能够收发
这个过程
A 我能够牵你的手吗
B 能够,批准
C 那我牵了,,
而后开始互动的过程,就是数据交互的过程,
返回数据有四个局部
第一局部先回来就是状态码。胜利后的就是200,
前面的局部数据很大的话,第二局部 如果很大,就会缓缓接管
readyState等到4的时候,就是数据全副返回的时候
个别咱们先判断就是通过全副返回数据后,再判断状态码
学会封装一个Ajax
window.jQuery= function(nodeSelector){ let nodes = [] nodes.addClass = function(){} nodes.html =function(){} return nodes}window.jQuery.ajax = function(options){ let url if ( arguments.length ===1) { url = options.url }else if (arguments.length ===2) { url = arguments[0]; options =arguments[1] } let method = options.method; let successFn = options.successFn; let body = options.body; let failFn = options.failFn; let headers = options.headers let request = new XMLHttpRequest() request.open(method,url) for(let key in headers){ let value = headers[key] console.log(key,value,'设置头部') request.setRequestHeader(key,value) } request.onreadystatechange = ()=>{ if(request.readyState===4){ if (request.status>=200&&request.status<300) { successFn.call(undefined,request.responseText) // console.log('申请胜利') // console.log(request.responseText) // let string = request.responseText // let object = window.JSON.parse(string) }else if(request.status>=400){ failFn.call(undefined,request) } } } request.send(body)}myButton.addEventListener('click',e=>{ let obj = { urlL:'/xxx', method:'get', body:'1', headers:{ 'Content-Type':'text/json;charset=utf-8', 'Steven':'18' }, successFn:(responseText)=>{console.log(1)}, failFn:(request)=>{console.log(2)}, } window.jQuery.ajax(obj) })window.$ = window.jQuery