大家都是草台班子😂,我干了这么多年开发,能把跨域问题说清楚的人也没几个😅

查看 778|回复 101
shadowyue
OP
  
@jevirs 会背和真的会用还是有区别。
比如前端资源的缓存策略怎么做比较好,我面试也经常问,能用实践回答让我满意的就少多了。
Xrall   
@laobobo 太对了哥,mdn 上面很多答案都是现成的。
害怕的是我不知道面试过多少前端,都不知道有 mdn 这个东西,汗流浃背了😅
lisongeee   
后面的都能理解,第一点的确是不知道的。
之前就有时候会出现前端请求跨域,然后就会让后端处理一下跨域。
但是奇怪的就是游览器报跨域后端压根没有收到任何请求。
那么 OP 说的第一点就让我稍微想得通一点了,肯定是出现了 node 的服务出现了异常导致没法正确转发。
回想一下也是每次遇见这种情况往往是本地重启一下服务就好了。
想想以前全都是 ajax 一把嗦,后端配置好了还真没遇见过前面说到的这种问题。
shadowyue
OP
  
你这有点东西都没说清楚,不严谨,比如你说的《为啥我见过浏览器发 option 请求?》
这叫预检请求,不是每次都发,只有当发起复杂请求时才会发起,使用 fetch 、xhr 发起 无复杂参数(浏览器认为无副作用)的 get 和 post 是 *没有预检请求* 的,而且服务器能收到并且正确处理
但是也需要返回允许 cors 的 headers ,否则浏览器不会把 response 传递给 js
byte10   
@Xrall 浏览器的做法是跨域了直接把请求拦截了,后端啥日志都不会有的。
nthin0   
(⊙o⊙)…有一个东西 我觉得应该可以讲一下,为啥会有跨域问题。。。不限制 跨域会有什么问题,小程序为啥没有跨域问题。
ylh1024   
感谢讲解,学习了
silencil   
chrome --user-data-dir="C:/Chrome dev session" --disable-web-security --disable-site-isolation-trials
Xrall   
很好!我个人觉得我是理解跨域的,也知道是浏览器的策略。但是一旦被问的话,估计也是说不上来。另外,我就是这种三四年的菜鸡,也不会配置 Nginx 。
yuezhiyuan   
@shadowyue #43 这个是知道的游览器做了拦截。
只不过还是有一点点疑惑,那就是我描述的这种情况的话。
原因是游览器发送了真正的请求地址从而被游览器认定跨域拦截,
还是说像描述中一样是因为一些问题导致 node 启动的服务没有正确转发呢?
您需要登录后才可以回帖 登录 | 立即注册

返回顶部