跨域,前端,浏览器,cors
2022-04-06
2022-04-06
一、什么是跨域
出于浏览器的同源策略限制。同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。知识点:跨域只会出现在浏览器上,小程序和APP开发不会有跨域问题
二、什么情况下会出现跨域
说人话就是域名不同的时候会出现跨域。下面以 百度 域名为例,在域名的:协议、主机名、域名、端口 任何一个与当前访问的站点域名不同时就会出现跨域
1 | https://www.baidu.com:443 |
切记:本文章只讲述 前端解决跨域的办法,并且前端解决跨域问题只在本地开发时有效,项目发布线上需要前端服务器配置请求代理比如 nginx的反向代理 或 后端允许跨域请求
解决跨域的方法就是“欺骗”浏览器 或 删除浏览器限制
三、uni-app 项目 解决跨域办法
方法一:使用 HBuilderX 内置浏览器,内置浏览器是删除了浏览器的跨域限制的。
方法二:在项目根目录 manifest.json 文件中添加 h5 配置,点我 查看 uni-app 文档说明。
1 | "h5" : { |
页面请求代码示例
1 | uni.request({ |
四、Vue.js 项目 解决跨域办法
在项目根目录 vue.config.js 文件中添加如下配置
1 | /* 开发环境配置 */ |
页面请求代码,以 axios 库为例
1 | request.get('/api/1.json',{ |
五、终极解决办法,删除浏览器跨域限制
以 chrome 浏览器为例
【设置步骤】
新建一个 Chrome 的桌面快捷方式
在快捷方式上右键,点击【属性】,打开【属性】面板
在【属性】面板的【目标】中(chrome.exe 后面)添加启动参数
// 完整复制如下参数,注意空格
1 | --args --disable-web-security --user-data-dir=C:\MyChromeDevUserData |