【问题标题】:Problem with cors on not main/another api不是主要/另一个api上的cors问题
【发布时间】:2021-08-03 03:05:46
【问题描述】:

假设您需要在服务器上安装 cors 并进行配置,但这就是问题所在。我将 Svelte 用于我的应用程序,但我使用的不是我自己的主 api,而是位于此 link 上的 api。但是我不能在那里配置cors,我该怎么办?此外,前端的所有尝试以某种方式更改 cors,设置 access-control-allow-origin 和其他标头,使代理服务器不起作用。如何摆脱这种情况,我马上就要截止日期了。

【问题讨论】:

    标签: axios cors frontend backend svelte


    【解决方案1】:

    CORS 需要在服务器端配置,这意味着站点https://gdchallengelist.com/api/v1/ 应该允许yourdomain.com 访问端点。 CORS 是在客户端强制执行的浏览器策略,因此如果您通过 curl 或 HTTP 客户端(例如 Postman 或 insomnia)向同一端点发出请求,您将不会看到任何 CORS 错误被绕过。

    方法 1: 设置一个快速服务器,该服务器会到达端点并允许在您的应用上使用 cors。这需要在您的客户端应用程序旁边运行服务器。

    var express = require('express')
    var cors = require('cors')
    var app = express()
    
    app.use(cors())
    
    app.get('/products/:id', function (req, res, next) {
      res.json({msg: 'This is CORS-enabled for all origins!'})
    })
    
    app.listen(80, function () {
      console.log('CORS-enabled web server listening on port 80')
    })
    

    方法 2: 按照 video 设置 cors-anywhere 我已经分享了在 rollup 本身上设置 cors 的时间线。

    【讨论】:

    • 好吧,也许我很笨,但为什么我必须自己做快递服务器?我只是无法理解示例,您的意思是,在 api 端点上创建自己的端点还是什么?
    • 因此您将请求代理到您的应用程序。
    • 我同意,CORS 不是您可以在浏览器中使用的东西。它由浏览器本身强制执行,以防止人们“窃取”对他们无权重用的 API 的访问。
    猜你喜欢
    • 2013-05-20
    • 1970-01-01
    • 2020-02-22
    • 2021-08-22
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    • 2018-07-09
    • 2021-07-19
    相关资源
    最近更新 更多