用原生JS写出一个AJAX请求

let request = new XMLHttpRequest()
request.open('get','/xxx')
request.send()
request.onreadystatechange = ()=>{
    if(request.responseState === 4){
    if(request.satatus>=200){
    console.log('请求成功')  
  } else if(quest.status>=400){
    console.log('请求失败')
  }
 }
}复制代码


使用AJAX必须满足三点

1.使用XMLHttpRequest发请求

2.服务器返回XML格式的字符串

3.JS解析XML,病更新局部页面


注意: 

只有协议+端口+域名一模一样才允许发AJAX请求

1.http://baidu.com可以向http://www.baidu.com发AJAX请求吗?

2.http://baidu.com:80可以向http://baidu.com:81发AJAX请求吗?

答案都是不可以,必须一模一样。

其他请求方式不用同源,但是AJAX必须同源。这是为什么呢?

因为比如form方式发送请求后页面会刷新,浏览器认为这样的方式是安全的。

但是AJAX页面不会刷新,原网页就会读取响应的内容,就没有私密可言啦。


AJAX太安全,任何网站都不能再未经允许的情况下发请求,要突破同源策略,就要用到CROS

CORS
Cross-Origin Resource Sharing
全称是跨源资源共享
核心就是在server里面添加  
response.setheader('Access-Control-Allow-Origin','http://.......')
复制代码




转载于:https://juejin.im/post/5c445e97f265da611f07f7d1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值