快3网上购买

前后端跨域问题解决记:转变一下思路其实会柳暗花明

电脑杂谈  发布时间:2019-09-03 05:05:19  来源:网络整理

如何解决跨域问题_怎么解决跨域问题_怎么解决跨域问题

如果您是一名老程序员,那么您必定在开发中碰到过这些坑,或浅或深,但唯一不变的是不是刚填完坑就是在填坑的路上。如果您是一个刚入行的菜鸟,那么恭喜您入坑,长路漫漫,祝君好运。

最近打卡君很忙,为了一个公司的项目,要赶在新年前完成上线。可谓时间紧,任务重,但毕竟是决定要用这种的技术方案,那就一个定字:干。当然,不干也没办法。哈哈,闲话少扯,言归正传。这次项目确实碰到了一些曲折的技术难题,如果项目总是一帆风顺的进行下来,我们该是如此的无聊啊,又该怎么进步呢?

项目的后期是很成功的,前端框架,业务模块,划分开发有序进行,但当业务模块研发接近尾声的之后,我们看到一个致命弊端。前端和后端快3网上购买存在跨域问题,有读者也许是资深老猿,读到这儿可能会嗤之以鼻很惊讶:“这不是一个老生常谈的难题吗?这种疑问也叫问题”。您先别急,请接着往下看。

其实在开发中,前后端分离,确实是一个最抢眼的难题,也很高解决。可能就是一个CORS的难题,那么让后端配合改成允许前端域名跨域就可以了。

这一点,我们改了,当然有用,也缓解了开发时的难题。在开发中,我们看到Chrome一直是好的,但IE不行。所谓一入前端深似海,大概就是这个理由吧,明明有些超前新颖的科技,可是用不上或者说不让用。您可能会问:“为什么?” 因为IE,IE对前端确实是一个大敌人,我虽然有IE,我也有IE七、八、九、十、十一。好像IE在盯着每一个前端的嘴巴得意洋洋的说:“小样,跟我闹,看我不玩死你。”这还不是最可悲的,闹心的或许你还在一个需要IE八、九的公司或团队,这时,IE更掂着一只脚,连掂边嘚瑟:“我就想看你的一个笑话,看你如何应付我。”然后指着你做个鬼脸。面对这些状况,你能怎样办?暴打一顿么?也就心中埋怨几句罢了,该解决的难题,该应付的技术,一个都不能少。

IE不行也有解决方案,如果用的是jquery的Ajax,再加一个

怎么解决跨域问题_如何解决跨域问题_怎么解决跨域问题

快3网上购买jQuery。support。cors = true;

妥妥的解决难题。

是的,如我们所愿,解决了。那么疑问结束了吗?

如果就这样结束,这对一名像打卡君这样的老猿来说(开玩笑的,且莫当真),算问题吗?

这只是为什么我们到了业务模块研发的尾声才发觉致命弊端的缘由,因为我们做接口联调的之后是连的后端开发员工的手机以及研发服务器,跟线上环境有必定的差别,具体的区分就是开发环境的接口为Http协议,线上的接口环境为Https协议。这就是问题所在,本来业务跑的挺顺畅,打卡君心里还由衷欣喜,总算黑天白夜的上班没有白费,要结束了,一切尽在掌握中。Chrome、FF、Edge,一切看起来那么美丽,接下来的事也许您也猜到了。故事的情节常常就是这样,小说、电视剧、电影都是这样的套路,越是成功的之后,越是这里的黎明静悄悄,往往伴随着无限杀机。

黑天鹅浮现,当将Edge切到IE八或九的之后,在开发环境中仍然是完美的。但当我们把前后端都发布到一个和制造环境相同的服务器时,IE八和九罢工了。在这种一个静悄悄的加班瞬间,身体和精神都很沮丧的之后。正是发生在各类业务模块接近尾声,项目要大功造成之际。

惊喜吗?意外吗?

怎么解决跨域问题_如何解决跨域问题_怎么解决跨域问题

所谓希望越大,失望越大。这好像我们一生在低谷之时,又碰到尴尬之事。屋露偏逢连下雨,也像以前窗户旁边淅淅沥沥不停的下雨,在这个北方城市,已经滴滴答答一个礼拜。心情也跟着潮湿起来。

这时,看古人的话是如此的智慧,范仲淹劝我们说:不以物喜,不以己悲。

且莫人生得意马蹄急,也休要失魂落魄醉酒家。

出现难题,解决疑问。你的锅,谁也替你背不了。当你侃侃而言,游说四方,来促使这个事的过后,坑有了,自己跳下来吧。

打卡君回忆起整个前端生涯,确实没有解决或遭遇过这样疑问,或者说这不属于前端范畴?但在这个难题出现的当初,打卡君觉得就是一个技术难题,你没有在IE八或九下调通后端的Api。难道不是你的代码问题?

在认知陷入这个狭窄的深渊,再也出不来,在查遍各类搜索引擎及诸多开源技术论坛,大概得出了一些技术结论。大概的含义基本归结为一种,用jquery的一个插件:

jquery.xdomainrequest.js

如何解决跨域问题_怎么解决跨域问题_怎么解决跨域问题

但限制有以上几点:

仅能用GET或POST的请求POST的请求下ContentType只能用text/plain前后端http或https协议需要一致仅限异步请求不能带cookie这些限制,1、3和4还好说,2和5真是要了命。后端接口不接收text/plain,而为了新老平台的兼容性怎么解决跨域问题,cookie也需要得带。

解决这个难题时,心里很兴奋,时间也迅速。当时的心态变化是这么的(从看到问题开始):

5分钟后:我似乎跳进大坑了。半小时后:日,网上如何都查不到资料啊一个小时后:一位智者说过,如果你一个小时还没有解决这个难题,就休息一下吧,我想,此话有理,我起身上了趟厕所。十分钟过后,回来再次战斗。

两小时后:天了撸,告国外大神吧,查查国外的解决方案依旧无解

....

三四小时后:完了,我要被这个技术困死了,让你还执意推前后端分离,作死了吧。在解决这个难题四五个小时后,打卡君依旧未找到症结好的解决方案,只有央告各位后端大神,在这个之后,后端告之,待研究。但合同前后端已承诺好,就是json,而cookie不带上,不能新老平台兼容,这个难题有点复杂呵。

如何解决跨域问题_怎么解决跨域问题_怎么解决跨域问题

快3网上购买五味杂阵,在当天没有解决这个难题,也许是当日事当日毕的个人习惯,也许是对技术的好奇心和求知欲,当打卡君拖着疲倦的身子跑到屋里,一夜时间反复难眠,在考量该怎么熬过这个技术难题。

前面说做科技的人容易遭遇技术领域的牛角里,其实问题常常并未有我们想象的复杂怎么解决跨域问题,只是在你的科技领域以及擅长的技术下解决不了甚至解决不好。这可能未必正是所谓灵光一现的时侯。我们要重返问题的本源,

快3网上购买我们要解决哪些疑问?跨域问题。

为什么会出现跨域问题?域名不一致。

现有的科技为什么解决不了IE八和九?因为八和九太老,当时或许未前后分离以及未考虑https。

那么即使域名一致就会不会出现跨域问题?当然不会。

好的,我们今天也是要把域名转成一致,在当前项目的科技框架下,前后分离是必定的,域名不一致也是必定的,我们如何把前后端造成一致,或者说是转成一致,是我们解决难题的关键所在。如果有Node中间层,用中间层去代理后端的接口给前端掉用?是不是有能缓解这个难题?答案是能的。可是后来开技术方案确认会的之后,为什么打卡君要劝去掉呢?因为有替代方案,Node是个噱头。那么替代方案是哪个?nginx。

具体解决方案如下:

到这里,打卡君恍然大悟,大骂自己太笨。是啊,当时的看法确实是这么,为何目前陷进了技术的死胡同?疲劳乎?经验邪?


本文来自电脑杂谈,转载请注明本文网址:
http://www.kadakong.com/a/jisuanjixue/article-121521-1.html

    相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    快三平台 内蒙古快3 内蒙古快3 山东十一运夺金开奖结果 快3网上购买 快三平台 贵州11选5 快三投注网 快乐时时彩 河南快3