网站首页 > 技术文章 正文
浏览器为了安全引入了同源策略,这直接导致默认情况下前后端域名如果不同,那么则功能会受限。 随着前后端分离的发展,前端和后端职责的分离,前端会有专门的本地开发服务器(local dev server)用于本地开发。这个时候和后端接口联调时就很可能会遇到跨域安全问题。
这本身是浏览器的一种安全策略,但是却对前端开发造成了影响。如何解决呢?
之前我的解决方式是通过本地代理(node 或 nginx 等服务)解决。基本思路就是给请求响应头增加大概如下内容:
Access-Control-Allow-Origin: https://foo.example
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Allow-Headers: X-PINGOTHER, Content-Type
Access-Control-Max-Age: 86400
后来我使用了更方便的工具: 浏览器扩展。之后跨域问题便可以一去不复返。
刚开始的时候用的是一个专门给请求加跨域头的插件 Allow CORS: Access-Control-Allow-Origin ,地址:https://chrome.google.com/webstore/detail/allow-cors-access-control/lhobafahddgcelffkeicbaginigeejlf/related?hl=en-US。
这个插件使用起来非常简单,只需要点击切换 on 和 off 的状态即可。 on 的时候会自动给请求头增加跨域功能,off 则相当于禁用了插件。
后来我发现这个插件有些头不会加上,比如 access-control-expose-headers 。
因此一个「通用的给请求增加头信息」的插件就有必要了。于是我选择了 requestly
美中不足是每个规则只能免费改「一个」头。不过好消息是你可以新建多个规则,每个规则改一个头就可以白嫖了。
地址:https://app.requestly.io
requestly 不仅仅可以增加跨域请求头,理论上可以对请求和响应做任意的修改。因此用来做 mock,统一加参数等等都是可以的。
基于此,使用浏览器扩展就可以彻底解决前端在本地开发时候遇到的跨域问题了。
猜你喜欢
- 2024-09-26 前后端分离的项目,解决跨域问题(前后端分离如何解决跨域)
- 2024-09-26 每日学点---一文读懂Nginx跨域请求Access-Control-Allow-Origin
- 2024-09-26 Java实现CORS跨域请求(java跨域请求的三种方法)
- 2024-09-26 详解Nginx配置跨域请求Access-Control-Allow-Origin
- 1516℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 582℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 518℃MySQL service启动脚本浅析(r12笔记第59天)
- 488℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 487℃启用MySQL查询缓存(mysql8.0查询缓存)
- 473℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 453℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 452℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)