如何创建代理来访问外部 API? [复制]

Posted

技术标签:

【中文标题】如何创建代理来访问外部 API? [复制]【英文标题】:How to create a proxy to access an external API? [duplicate] 【发布时间】:2019-09-08 02:37:56 【问题描述】:

我正在尝试使用我的 react 应用程序访问 API。具体来说,我正在尝试访问 IGDB API。由于我遇到了 CORS 错误,因此我正在尝试按照他们网站上的说明设置代理:https://api-docs.igdb.com/#cors-for-js-ionic

我无法设置此代理来绕过它。像 AnyProxy 这样的东西会起作用吗?

【问题讨论】:

您是否尝试在开发环境中访问外部 API?如果你是,你可以在你的 package.json 中添加一个代理字段,这样可以避免 CORS 问题。在这里找到更多信息 - facebook.github.io/create-react-app/docs/… 我会在这个代理参数下放置什么域?我正在尝试访问api-v3.igdb.com/games 【参考方案1】:

这个问题把我逼疯了。我决定CORS Anywhere. 本质上,您将它用作您的开发环境和您尝试使用的公共 API 之间的网关。对我来说:https://cors-anywhere.herokuapp.com/https://api-v3.igdb.com/games/?search=Halo

是我的错误的解决方案。

【讨论】:

我拒绝相信这是唯一的解决方案。疯了! 此方法存在安全风险,因为它是公开的【参考方案2】:

在此处扩展我对代理的评论以获得更好的视图。

这是一个可能看起来如何的示例。

package.json


 "proxy": "http://api-v3.igdb.com"

fetch.js

function fetchGames() 
 fetch('/games')

【讨论】:

每当我这样做时,它仍然会尝试通过localhost:3000发送邮件 你尝试过重建你的项目吗? @Lewis 你的问题解决了吗? 嗨,肖恩,感谢您的回复。我的解决方案是在任何地方使用 cors-anywhere。这样我就很容易在开发中进行测试。

以上是关于如何创建代理来访问外部 API? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 AWS 设置无 ui 的外部 API 身份验证?

如何通过 JSONP 或 HTTP 代理访问 Rally REST API 的 JSON 响应?

Android - 如何使用新的存储访问框架将文件复制到外部 sd 卡

如何使用 Nuxt 为不同的 API 服务器设置代理?

正向代理和反向代理的区别

为啥云函数 URL (Firebase) 可以公开访问?如何限制对特定外部呼叫的访问? [复制]