前端的跨域问题理解

 我来答
华源网络
2022-07-02 · TA获得超过5557个赞
知道小有建树答主
回答量:2486
采纳率:100%
帮助的人:143万
展开全部
前端真的的是乱的一笔。--来自iOS开发者的一声哀鸣

需要把前端看成两部分,一部分是页面,另一部分是接口(或者加数据资源)。前端页面中调接口是有限制的,同源策略(SOP)要求我们调用的接口必须和页面在同一域名下,说是为了保证数据的安全。所谓同源:协议+域名+端口

但实际情况是,在前后端分离的大趋势下,好多页面和接口的服务器分布在不同的域名下。比如在开发时,前端页面分为本地环境、测试环境、仿真环境、正式环境,而接口也分为测试环境、仿真环境、正式环境,当然也可以有本地环境。他们在不同的域名下或IP下或者端口下,是不同源的。或者平时我们也能遇到需要调用不同的服务器数据资源。显然,同源策略保障了部分安全的同时,给开发造成了很多的麻烦。

所以,跨域问题是每个前端绕不过去的坎儿。

解决办法有两个方向,一个是前端解决,一个是服务端接口解除限制。

前端解决就是通过jsonp、jquery ajax、axios配置代理等。还有个简单的,比如Mac用户,可以使用Charles工具设置代理,临时使用。
服务端解决可以通过nginx反向代理设置允许跨域请求的域名、或者设置Access-Control-Allow-Origin,允许跨域资源共享等。
具体解决方案可参考 https://segmentfault.com/a/1190000011145364

反观iOS,轮廓简直不要太清晰,大部分时候只用专注于开发,没有各种乱七八糟的事情。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式