JSONP

本文介绍了XMLHttpRequest的readyState和status属性,重点讲解了跨域问题,包括同源策略、JSONP的工作原理和CORS服务端支持的实现方式。此外,还提及了Ajax的fetch插件和本地存储中的localStorage与sessionStorage的区别。
摘要由CSDN通过智能技术生成

XMLHttpRequest

// post请求
const xhr = new XMLHttpRequest()
xhr.open('GET', '/login', false)
xhr.onreadystatechange = function() {
   
  // 这里的函数异步执行
  if(xhr.readyState == 4) {
   
    if (xhr.status == 200) {
   
      alert(xhr.responseText)
    }
  }
}

const postData=  {
   
  userName: 'zhangsan'
  password: 'xxx'
}

xhr.readyState

  • 0 - UNSET尚未调用open方法
  • 1 - OPENED open 方法已被调用
  • 2 - HEADERS_RECEIVED send 方法已被调用,header 已被接收
  • 3 - LOADING 下载中,responseText 已有部分内容
  • 4 - DONE下载完成

xhr.status

  • 2xx-表示成功处理请求,如200
  • 3xx- 需要重定向,浏览器直接跳转,如301、302、304
  • 4xx-客户端请求错误404、403
  • 5xx- 服务器端错误

跨域

什么是跨域( 同源策略 )
  • ajax 请求时,浏览器要求当前网页和 server 必须同源(安全)
  • 同源:协议、域名、端口,三者必须一致
  • 前端: http://a.com:8080/ ;server : https://b.com/api/xxx

加载css js可无视同源策略

  • < img src=跨域的图片地址 />
  • < link href=跨域的css地址 />
  • < script src=跨域的js地址 >< /script >
JSONP
  • < script>可绕过跨域限制
  • 服务器可以任意动态拼接数据返回
  • 所以,< script>就可以获得跨域的数据,只要服务端愿意返回
// jQuery 实现jsonp 
$.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值