用原生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

你可能感兴趣的:(用原生JS写出一个AJAX请求)