初始跨域和CORS跨域资源共享以及JSONP

发布时间 2023-03-22 21:09:21作者: monkey大佬

初始跨域

1.跨域是什么

  向一个域发送请求,如果要请求的域和当前域是不同域,就叫跨域

  不同域之间的请求,就是跨域请求

2.什么是不同域,什么是同域

  https(协议)://www.imooc.com(域名):443(端口号)/course/list(路径)

  协议,域名,端口号,任何一个不一样就是不同域

  与路径无关,路径不一样无所谓(端口默认可以不写)

3.跨域请求为什么会被阻止

  阻止跨域请求,其实是浏览器本身的一种安全策略--同源策略

其他客户端或者服务器都不存在跨域被阻止的问题

4.跨域解决方案

  CORS跨域资源共享

  JSONP(script)

优先使用CORS跨域资源共享,如果浏览器不支持CORS的话,再使用JSONP

 

 

CORS跨域资源共享

1.CORS是什么

  CORS (Cross-Origin Resource Sharing,跨域资源共享)由一系列 HTTP 响应头 组成,这些 HTTP 响应头 决定浏览器是否阻止前端 JS 代码跨域获取资源。

2.使用CORS跨域的过程

  浏览器发送跨域请求

  后端在响应头中添加Access-Control-Allow-Origin头信息

  浏览器接收到响应

  如果是同域下的请求,浏览器不会额外做什么,这次前后端通信就圆满完成了

  如果是跨域请求,浏览器会从响应头中查找是否允许跨域访问

  如果允许跨域,通信圆满完成

  如果没找到或不包含想要跨域的域名,就丢弃响应结果

3.CORS的兼容性

  IE10及以上版本的浏览器可以正常

 

 

JSONP

1.JSONP的原理

  script标签跨域不会被浏览器阻止

  JSONP主要就是利用script标签,加载跨域文件

2.使用JSONP实现跨域 

   服务器端准备好JSONP接口