关于跨域问题,今天好像特别引人注目?发一下这篇文章,对于请求和跨域的描述挺好

163 天前
 shanhaisilu

一个关于前端怎么看请求和请求跨域的文章 https://juejin.cn/post/7122473590238216229

1385 次点击
所在节点    程序员
21 条回复
codehz
163 天前
硬生生的把看文档就能解决的事情,转变成实验科学。。。
victimsss
163 天前
天天讨论 https 前端加密和跨域的问题🤙
weixind
163 天前
事情本质也就同源策略几句话的事情。就是一些二把刀天天发文章污染知识网络。
weixind
163 天前
@victimsss 事实证明。前端水货确实多。
tool2dx
163 天前
@codehz 一般跨域遇到的问题,都是调用别人网站的资源服务,这种情况自己解决不了。比如说我想下载一个 github.com/user/master/code.zip, github 就是不允许跨域,你也没办法。

这些在客户端里完全不存在的问题,放到浏览器里就举步为艰。
wysnxzm
163 天前
135 跨域 246 粘包
shadowyue
163 天前
虽然我知道你是给自己文章引流,但是写的真是又长又表述不清晰。。。还不如我发的那个帖子
拜托了哥,前端被嘲讽就是因为你这样
gerefoxing
163 天前
想起以前写 jsp 页面那个时候遇到跨域问题,调用的服务端非自己公司的,那时候还用过 jsonp 和 flash
DOLLOR
163 天前
现在大家吵的“跨域”,其实有两件事。

一是写代码期间,为了让前端程序员能调取任意地址(比如生产机、测试机,甚至隔壁后端同事的电脑)的数据,利用本机的 vite 服务劫持,欺骗了浏览器,实现了类似“跨域”的效果。
这其实不是真正的“跨域”,只是方便写代码,临时开后门而已。

二是代码部署到生产服务器上后,因为某些原因(比如动静分离),前端的代码和后端的代码不在同一个“域”,浏览器就默认你们不是一家人,拦截了请求结果。这时就需要后端配置 HTTP 响应头,告知你们是一家的,让浏览器网开一面。

第一种开后门的“跨域”全程只需前端自己解决,但这只是写代码期间的临时开后门行为,并不是真的解决跨域问题。
而第二种才是真正的跨域,只有后端、运维才能解决的,跟前端没有任何关系。

但某些水平不足的后端混淆了两种“跨域”,遇到同事要求配置 HTTP 响应头的时候,他们百度一下看到了第一种,把开发期间的 hack 当成“解决方案”,反问“你们前端不是可以自己解决吗?”,就把工作甩给前端,自己撒手不管,反倒还说别人是水货了。
shanhaisilu
163 天前
测试
shanhaisilu
163 天前
@shanhaisilu 测试
shanhaisilu
163 天前
@DOLLOR 言简意赅,一针见血b( ̄▽ ̄)d不过作为前端来说,会点 nginx 反代之类的也算是基础要求了,起码得知道 nginx 能解决问题;水货多这个问题前后端都有,还都挺多,都是培训班几个月流水线出来的ε=(´ο`*)))唉
shanhaisilu
163 天前
@shadowyue 你要不要看看文章的发布时间,22 年 7 月的文章,我现在还引流?谁引流两年前的东西啊;写的长是因为用了大量的篇幅在写浏览器的路径处理和 vite 的开发服务器配置,跨域的问题一开始几句话就说完了,后边都是解决方案
shanhaisilu
163 天前
@tool2dx 没啥办法,毕竟浏览器面对的开发者群体太广了,谁知道有没有人放毒,开发浏览器的时候只能把安全策略定的严格一点;开发客户端好处就是东西都是自己写的,跑的东西自己大体知道都有哪些,不需要太担心有人在自己的东西里运行带毒的东西;不过浏览器还算好的了,各个平台的小程序那是真的糟心
shanhaisilu
163 天前
@weixind 毕竟培训班几个月一批,没办法
shanhaisilu
163 天前
@victimsss 你确实牛逼,肯定天天都是高精尖功能把,想来肯定很久都没写过变量声明这么简单的东西了吧
shanhaisilu
163 天前
@codehz 那你可真棒 ,看看文档就知道全部,知道怎么操作,上手你是一点时间都不用,你开发起来肯定是一路畅通无 bug 的吧
Rennen
163 天前
我倒是觉得没看到有人能够讲清楚为啥会有「同源策略」这个多此一举的东西,下面是我的见解

举个例子,有两个网站,网站 A 是一个银行网站,其中有一个查询用户余额信息的 API 接口。

网站 B 是一个毫不相干的第三方网站,和网站 A 不同源。

网站 B 中有一个 JavaScript 脚本想要请求网站 A 的查询余额接口。浏览器携带着网站 A 的 Cookie 向网站 A 的后端发送请求,后端接收请求后又向浏览器返回带有余额信息的响应。此时同源策略发挥作用,由于网站 A 和网站 B 不同源,那么响应会被浏览器「截获」,网站 B 中的这个 JavaScript 脚本就获取不到这个响应,也就无法知道用户的余额信息。
paopjian
163 天前
浏览器的各种安全行为全是在为当初制定的规则打补丁,cookie 这些技术又是不用不行的,只能在两者之中找平衡了, 最终产物就是 跨域控制 HTTPS 这些, 全靠浏览器作为最后一层屏障兜底, 一旦浏览器也被人换了,那可真是直接突破, 所以网吧电脑这种不可控环境能不输密码还是别输密码, 扫码都可能被拦截一层呢, 中间人攻击这种更是轻而易举
neighbads
162 天前
@tool2dx 又和 github 不允许跨域有啥关系....

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1056793

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX