初识跨域、跨域资源共享
初识跨域
1、初识跨域
同域,不是跨域
cons url = ' ./index.html ';
不同域,跨域,被浏览器阻止
const url = ' https://www.imooc.com ';
cons xhr = new XMLHttpRequest();
向同域发送请求,如果要请求的域和当前是不同域,就叫跨域
不同域之间的请求,就是跨域请求
2、什么是不同域
https(协议)://www.imooc.com(域名):443(端口号)/course/list(路径)
协议、域名、端口号、任何一个不一样,就是不同域
与路径无关,路径一不一样无所谓
不同域
https://www.imooc.com:443/course/list
http://www.imooc.com:80/course/list
同域
http://imooc.com:80
http://imooc.com:80/course/list
3、跨域请求为什么会被阻止
阻止跨域请求,其实是浏览器本身的一种安全策略--同源策略
其他客户端或者服务端都不存在跨域被阻止的问题
4、跨域解决方案
CORS 跨域资源共享
JSONP script
优先使用CORS 跨域资源共享,如果浏览器不支持CORS的话,再使用JSONP
跨域资源共享
1、CORS是什么
const url = ' https://www.imooc.com/api/http/search/suggest?words=js ';
const xhr = new XMLHttpRequest();
Access-Control-Allow-Origin:*
表明运行所有的域名来跨域请求它,*是通配符,没有任何限制
只允许指定域名的跨域请求
Access-Control-Allow-Origin:http://127.0.0.1:5500
2、使用CORS跨域的过程
浏览器发送跨域请求
后端在响应头中添加Access-Control-Allow-Origin头信息
浏览器接收到响应
如果是同域下的请求,浏览器不会额外做什么,这次前后端通信就圆满完成了
如果是跨域请求,浏览器会响应头中查找是否允许跨域访问
如果允许跨域,通信圆满成功
如果没有找到或者不包含想要跨域的域名,就丢弃响应结果
3、CORS的兼容性
IE10及以上版本的浏览器可以正常使用CORS
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】