ArthurSlog
SLog-90
Year·1
Guangzhou·China
October 4th 2018
个人网站:http://www.arthurslog.com
CSDN:https://blog.csdn.net/u010997452/article/list/1
GitHub:https://github.com/BlessedChild/ArthurSlog
NPM:https://www.npmjs.com/~arthurslog
掘金:https://juejin.im/user/59f2a424f265da432f305c66/posts
简书:https://www.jianshu.com/u/b9ebe10f0534
segmentfault:https://segmentfault.com/u/arthurslog/articles
将欲歙之 必故张之 将欲弱之 必故强之 将欲废之 必故兴之 将欲取之 必故与之 是谓微明
开发环境MacOS(Mojave 10.14 (18A391))
信息源
Cross-origin resource sharing: https://en.wikipedia.org/wiki/Cross-origin_resource_sharing
开始编码
可能会有点跳,目前已经完成基本的前后端架构、数据库的对接
碰到了一点跨域的问题,本篇简单记录一下
由于写的速度跟不上开发速度,开发的过程后面每天再补上了
跨域问题,说到底就是浏览器的局限问题
浏览器的权限过大导致安全机制跟不上,所以暂时对自己做一些限制
在总体限制的情况下,来想办法实现具体的业务
因此出现了各种解决方案
但本质上,都是 “平衡业务与安全,再执行” 的思路
这里我采用了CORS (Cross-origin resource sharing),英文理解起来比较准确
前后端完整代码:
Client
Server
这里是图解示意图: https://upload.wikimedia.org/wikipedia/commons/c/ca/Flowchart_showing_Simple_and_Preflight_XHR.svg
简单来说,当你是GET和HEAD方法 同时没有 自定义的HTTP headers 时,服务器直接返回数据给你
除此之外,客户端需要跟服务器进行两次对话
第一次是查看 有没有 "Access-Control-*“这样的 headers,如果没有就报错
如果有,再返回数据
所以第一次并没有真正传出数据,第二次才行
至此,使用了 CORS 实现了跨域问题。
如果你喜欢我的文章 欢迎点赞 留言
谢谢
领取专属 10元无门槛券
私享最新 技术干货