ajax

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端允许和配合

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值