除了这种方法,前端如何解决"Access-Control-Allow-Origin"等?

2020-02-18 08:22:57 +08:00
 lxk11153
  1. 安装扩展,如 UnXSS 之类

    https://chrome.google.com/webstore/detail/unxss/cbjmpjkhiafmdnjnigdbelcnbihgpmge

  2. Test CORS: https://webbrowsertools.com/test-cors/

  3. 有其它类型的解决方法吗?

5160 次点击
所在节点    问与答
19 条回复
randyo
2020-02-18 08:26:29 +08:00
自己搭建后端代理请求
devld
2020-02-18 08:27:24 +08:00
--disable-web-security
LyleRockkk
2020-02-18 08:32:19 +08:00
前端 我用的是 2L 说的,浏览器快捷方式加后缀, 后端 用 服务器代理请求吧
mxT52CRuqR6o5
2020-02-18 08:44:46 +08:00
如果不能控制浏览器,纯前端解决不了跨域问题,必须后端配合
Mutoo
2020-02-18 08:46:58 +08:00
一般 production 都会在后端解决这个问题。而在 locahost 测试的时候,可以在 webpack devServer 增加 proxy 设置,代理后端的语法,就可以绕过 cors 限制
https://webpack.js.org/configuration/dev-server/#devserverproxy
weixiangzhe
2020-02-18 08:50:00 +08:00
没法子,浏览器的限制,后端解决
weixiangzhe
2020-02-18 08:50:50 +08:00
不碰后端代码的话,可以用 nginx 做反向代理
guorui112
2020-02-18 08:53:11 +08:00
有个 chrome 插件,叫 cors 啥的
netnr
2020-02-18 09:08:48 +08:00
Geo200
2020-02-18 09:13:31 +08:00
如果面向开发者,选楼上任意一个方法都可行,如果面向客户,就不要指望前端来解决这个问题了,必须由服务器来解决
hyy1995
2020-02-18 09:41:38 +08:00
这是在问怎么解决跨域吗…怎么感觉问的怪怪的。单单前端的话解决不了跨域问题,一般你开发页面都会起个本地服务的吧?生产环境用 webpack proxy,开发环境用 nginx 反代,反正都是代理就完事了
lxk11153
2020-02-18 09:55:10 +08:00
@hyy1995 #11
1. 233 是跨域(CORS),或者叫访问控制
2. "前端如何解决",这里的前端我是想表达: 请求 API 有 CORS 但我不能调整 API,所以如何调整自身
wunonglin
2020-02-18 10:16:22 +08:00
@lxk11153 #12 用 nginx 转发
lygmqkl
2020-02-18 10:26:56 +08:00
这个不是应该后端给前端做好的事情吗? CORS 的初衷就是为了控制这些乌七八糟的访问,提高规划性啊,当然如果非法请求另当别论, 生产环境只能到后端来解决,哪怕自己做一个中间层
lxk11153
2020-02-18 10:36:22 +08:00
@lygmqkl #14 看场景咯,比如写 UserScript 里请求其它 api
npe
2020-02-18 11:11:20 +08:00
二楼
stevexu
2020-02-18 12:10:12 +08:00
jsonp 也可以
lxk11153
2020-02-18 12:56:41 +08:00
@stevexu #17 不行吧,比如在当前页打开 Console 执行
```js
jQuery.ajax({
xhrFields: {
withCredentials: true
},
url: "https://developer.mozilla.org/api/v1/whoami",
dataType: "jsonp"
});
```
lxk11153
2020-02-24 13:34:51 +08:00
update #18 是否 withCredentials 是两种情况;其实我不太明白 jsonp 嘿~

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

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

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

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

© 2021 V2EX