工作好几年的前端不明白 ajax 跨域,会不会有点差

2018-10-15 17:03:54 +08:00
 xinzhognyi

侥幸面试过几个前端。
发现有些工作了 3 年左右的前端说不清楚 ajax 跨域问题。
有些还能说出来使用 jsonp 解决办法,有些什么都不知道。
但都不能说出来跨域的原因。
这样的前端算不算很差?

7874 次点击
所在节点    JavaScript
63 条回复
royeyu
2018-10-15 18:02:24 +08:00
工作一年只会 cors 跨域很正常,工作三年不会 ajax 跨域不正常
FINDCBI
2018-10-15 18:03:55 +08:00
@beny2mor 阮一峰的博客
allanzhuo
2018-10-15 18:04:14 +08:00
我知道四种,响应头设置,jsonp,网关,还有后台服务转发,还有其他方案吗。不过感觉也没啥用啊,用到的时候随便看看就懂了
wfd0807
2018-10-15 18:05:48 +08:00
98jiang
2018-10-15 18:07:23 +08:00
只知道个 jsonp 我后端
guolaopi
2018-10-15 18:14:14 +08:00
@98jiang +1 哈哈哈哈哈哈哈
sagaxu
2018-10-15 18:16:04 +08:00
看过 JVM 的大佬们,倒是说说看,你在项目里是如何用到这个知识点的。
ianva
2018-10-15 18:48:57 +08:00
估计也就调个堆大小,真的要是有能力有自信,让面试的来问问面试官前端问题,自然知道自己知识的局限性了
bucky
2018-10-15 18:50:17 +08:00
跨域问题只能靠后端配合,没有什么方式是纯前端能解决的,否则设置这个安全策略就失去意义了
iyaozhen
2018-10-15 19:21:15 +08:00
@sagaxu 书到用时方恨少,最近有个 JAVA 项目( tcp server )老是假死,报了一堆 JVM 的错,看不懂
iyaozhen
2018-10-15 19:23:03 +08:00
@deming 赞同,之前就见一个 FE 和后端两个人都不懂,鸡同鸭讲了半天。
sxlzll
2018-10-15 19:25:15 +08:00
说明缺少 owner 意识,
如果只是招一个撸代码的,可以多方面考量,
如果想招能独当一面、把控整个项目的,可以减(很多)分了
helloworld12
2018-10-15 19:29:08 +08:00
工作碰到搜索下就会了...但是,过一两年,没用到,想不起来很正常啊,除非一直在同一个领域工作
kerr92
2018-10-15 19:39:11 +08:00
很差,日常项目不可能说都是后端提前帮你处理好,往往需要前端主动去沟通,CORS 或者 JSONP 都需要前端参与,接入外部那种没有办法改代码的接口,可能还要你去找后端同事帮你做代理
66beta
2018-10-15 19:51:24 +08:00
@helone 跨域跟用什哪个 MVVM 框架有什么关系?
ChristopherWu
2018-10-15 20:02:59 +08:00
我简单总结一下:

跨域就是 从 a.com 发起对 b.com 的 网络请求,因为是两个不一样的域名,所以跨域了。
浏览器会根据 http 请求过来时的 origin 头部,对比是否允许访问当前网站, 从而对跨域做限制。
作此限制是历史原因:在以前 a.com 偷偷的弄了一个按钮,用户点了后,利用 cookies 就可以在背后成功访问 b.com/update_profile 之类的 API。

所以一般后端需要在做跨域限制时,根据 origin 头部,允许一些白名单访问。

#当然漏了很多细节: 如 POST 且多了几个头部的复杂请求,要先用 http 方法 OPTIONS 检查跨域与否,再发请求。
---
前端简单懂一些,吹吹也是必须的,不然面对黑盒子可不靠谱。
xiaoxinshiwo
2018-10-15 20:14:41 +08:00
@qq976739120 nginx 也行,服务端返回消息头添加允许跨域也可以,总之服务端处理,前端 jsonp 也行吧
rekulas
2018-10-15 20:28:22 +08:00
不是有点差,是很差
PythonAnswer
2018-10-15 20:39:47 +08:00
一天之内肯定能搞清楚 何必发帖
sologgfun
2018-10-15 20:40:30 +08:00
看到这个贴 复习了一下这方面的知识。。 分享个链接吧 前端 4 种方法+后端 2 种方法 查漏补缺呀
https://segmentfault.com/a/1190000003642057

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

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

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

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

© 2021 V2EX