AJAX 及 同源战略/ CORS跨域

什么是AJAX

是异步的JavaScript 和 XML

面试题:

请使用原生js来发送AJAX要求

let request = new XMLHttpRequest()
  request.open('get', '/xxx') // 设置request
  request.send()
  request.onreadystatechange = ()=>{
    if(request.readyState === 4){ 
      if(request.status >= 200 && request.status < 300){
        console.log('申明要求胜利')
      }else if(request.status >= 400){
        console.log('申明要求失利') 
      }
    }
  }

同源战略

假如你不是 xxxxx.com 里的js 你就不能向这个域名发送 任何ajax要求

只要 协定+端口+域名 如出一辙才许可发ajax要求
【注重要】如出一辙 如出一辙 如出一辙 如出一辙

1、http://baidu.com 能够向 http://www.baidu.com 发送要求吗 ???
不能!!!要如出一辙才行

2、http://baidu.com:80 能够向 http://baidu.com:81 发送 ajax 要求吗???
不能!!!端口不一样

cors 跨域

cors 能够通知浏览器 不需阻挠

cross-origin resource sharing 跨站资源共享

非要相应就在服务器写:
    response.setHeader('Access-Control-Allow-Origin','xxxxxx 网址 xxxxxx') 

为何要有同源战略?

由于原页面用form 提交到另一个域名以后,

原页面的剧本没法猎取新页面中的内容

所以浏览器认为是平安的

而ajax是能够读取相应内容的
因而浏览器不能许可你如许做(要求已发出去了 只是没有相应罢了)

同源战略的实质是:

一个域名的js
在未经许可的情况下不得读取另一个域名的内容
但浏览器并不阻挠你向另一个域名发送要求

    原文作者:Tong_sunshine
    原文地址: https://segmentfault.com/a/1190000019120912
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞