除了这种方法,前端如何解决"Access-Control-Allow-Origin"等? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lxk11153
V2EX    问与答

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

  •  
  •   lxk11153 2020 年 2 月 18 日 5763 次点击
    这是一个创建于 2212 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. 安装扩展,如 UnXSS 之类

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

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

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

    第 1 条附言    2020 年 2 月 18 日
    • 总结 (非面向客户群体)
      • 调整客户端
        • 1 添加启动参数--disable-web-security
        • 2 安装扩展,如 UnXSS 之类
      • 中间加代理
        • 3 原本是A直接请求C的,C不能cors。改为A请求B,由B请求C,B可以cors。可以自行搭建或者使用现成的如 https://cors.zme.ink/ (使用教程)
      • 调整前端代码,如果你是在开发调试的话
        • 4 详见5楼 @Mutoo 说的
    第 2 条附言    2020 年 7 月 11 日
    19 条回复    2020-02-24 13:34:51 +08:00
    randyo
        1
    randyo  
       2020 年 2 月 18 日 via Android
    自己搭建后端代理请求
    devld
        2
    devld  
       2020 年 2 月 18 日 via Android
    --disable-web-security
    LyleRockkk
        3
    LyleRockkk  
       2020 年 2 月 18 日
    前端 我用的是 2L 说的,浏览器快捷方式加后缀, 后端 用 服务器代理请求吧
    mxT52CRuqR6o5
        4
    mxT52CRuqR6o5  
       2020 年 2 月 18 日 via Android
    如果不能控制浏览器,纯前端解决不了跨域问题,必须后端配合
    Mutoo
        5
    Mutoo  
       2020 年 2 月 18 日
    一般 production 都会在后端解决这个问题。而在 locahost 测试的时候,可以在 webpack devServer 增加 proxy 设置,代理后端的语法,就可以绕过 cors 限制
    https://webpack.js.org/configuration/dev-server/devserverproxy
    weixiangzhe
        6
    weixiangzhe  
       2020 年 2 月 18 日 via Android
    没法子,浏览器的限制,后端解决
    weixiangzhe
        7
    weixiangzhe  
       2020 年 2 月 18 日 via Android
    不碰后端代码的话,可以用 nginx 做反向代理
    guorui112
        8
    guorui112  
       2020 年 2 月 18 日
    有个 chrome 插件,叫 cors 啥的
    netnr
        9
    netnr  
       2020 年 2 月 18 日   1
    Geo200
        10
    Geo200  
       2020 年 2 月 18 日
    如果面向开发者,选楼上任意一个方法都可行,如果面向客户,就不要指望前端来解决这个问题了,必须由服务器来解决
    hyy1995
        11
    hyy1995  
       2020 年 2 月 18 日
    这是在问怎么解决跨域吗…怎么感觉问的怪怪的。单单前端的话解决不了跨域问题,一般你开发页面都会起个本地服务的吧?生产环境用 webpack proxy,开发环境用 nginx 反代,反正都是代理就完事了
    lxk11153
        12
    lxk11153  
    OP
       2020 年 2 月 18 日
    @hyy1995 #11
    1. 233 是跨域(CORS),或者叫访问控制
    2. "前端如何解决",这里的前端我是想表达: 请求 API 有 CORS 但我不能调整 API,所以如何调整自身
    shakaraka
        13
    shakaraka  
    PRO
       2020 年 2 月 18 日
    @lxk11153 #12 用 nginx 转发
    lygmqkl
        14
    lygmqkl  
       2020 年 2 月 18 日
    这个不是应该后端给前端做好的事情吗? CORS 的初衷就是为了控制这些乌七八糟的访问,提高规划性啊,当然如果非法请求另当别论, 生产环境只能到后端来解决,哪怕自己做一个中间层
    lxk11153
        15
    lxk11153  
    OP
       2020 年 2 月 18 日
    @lygmqkl #14 看场景咯,比如写 UserScript 里请求其它 api
    npe
        16
    npe  
       2020 年 2 月 18 日 via iPhone
    二楼
    stevexu
        17
    stevexu  
       2020 年 2 月 18 日
    jsonp 也可以
    lxk11153
        18
    lxk11153  
    OP
       2020 年 2 月 18 日
    @stevexu #17 不行吧,比如在当前页打开 Console 执行
    ```js
    jQuery.ajax({
    xhrFields: {
    withCredentials: true
    },
    url: "https://developer.mozilla.org/api/v1/whoami",
    dataType: "jsonp"
    });
    ```
    lxk11153
        19
    lxk11153  
    OP
       2020 年 2 月 24 日
    update #18 是否 withCredentials 是两种情况;其实我不太明白 jsonp 嘿~
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5222 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 09:25 PVG 17:25 LAX 02:25 JFK 05:25
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86