1.手写简易的ajax
XmlHttpRequet
const xhr = new XmlHttpRequest()
xhr.open(“GET”, "/api", true)
xhr.onreadystatechange= function(){
if(xhr,readyState === 4){
if(xhr.status === 200){
alter(xhr.responseText)
}
}
}
xhr.send(null)
xhr,readyState 的取值
0:未初始化
1: 已经调用send()方法 正在发送请求
2:send() 方法执行完成 已经接受到全部的响应内容
3: 正在解析响应的内容弄
4: 响应内容解析完成 可以在客户端调用
xhr.status 的取值
2xx 表示处理成功 eg:200
3xx 需要重定向 浏览器直接跳转 301 302 304
4xx 客户端请求错误 eg: 404 03
5xx 服务端错误
2.跨域的解决方法 在这里插入代码片
同源策略: ajax 请求时, 浏览器 要求当前网页和 serve 必须同源
同源: 协议 域名 端口 三者必须一致
加载图片 css js 可以无视同源策略
可用于统计打点, 可以使用第三方统计服务
cors 服务器设置 http header
// 第二个参数允许跨域的名称
response.setHeader('Access-Control-Allow-Origin", "http://localhost:8011")
response.setHeader('Access-Control-Allow-Headers", "X-Requested-With")
response.setHeader('Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS")
.// 接受跨域的cookie
response.setHeader("Access-Control-Allow-Credentials", "true")
所有的跨域,都必须经过server端允许和配合