我在使用React和Express的同构JavaScript应用程序中遇到了一个问题.

我正在try 使用axios发出HTTP请求.等我的组件安装好

componentDidMount() {
  const url = 'http://ufc-data-api.ufc.com/api/v3/iphone/fighters/title_holders';
  axios.get(url).then( res => {
    //use res to update current state
  })
}

我从API中获得状态200 res,但我没有得到任何响应数据,也没有在控制台中得到错误

XMLHttpRequest cannot load http://ufc-data-api.ufc.com/api/v3/iphone/fighters/title_holders. 
No 'Access-Control-Allow-Origin' header is present on the requested resource. 
Origin 'http://localhost:3000' is therefore not allowed access.

但是,如果我在我的服务器上发出请求.js

const url = 'http://ufc-data-api.ufc.com/api/v3/iphone/fighters/title_holders';
axios.get(url).then(res => {
    //console.log(res);
});

它工作正常,在服务器启动时我会收到响应数据.这是实际API的问题还是我做错了什么?如果这是CORS问题,我猜是服务器中的请求.js也不行吗?谢谢

推荐答案

CORS是browser功能.服务器需要 Select CORS,以允许浏览器绕过同源策略.您的服务器将没有相同的限制,并且能够向任何具有公共API的服务器发出请求.https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

在启用CORS的服务器上创建一个端点,该端点可以充当web应用的代理.

Node.js相关问答推荐

购物车是空的状态|本地存储不更新产品数量|Redux|

为什么我收到此错误:MissingSchemaError:架构尚未为模型&业务&注册

如果我在 tsx 文件中使用了use client,ssr 会如何发生?

如何使用 Node.js 连接到 Cloud SQL?

TS[2339]:类型 '() => Promise<(Document & Omit) | 上不存在属性空>'

$not 的聚合版本是什么?

如何配置 Nginx React 和 Express

如何在带有 JS 的 Nodejs 中使用没有 Async 方法的 Await

为什么它无法发送发布请求并更改为 chrome 中的获取方法?

当我try 从本地主机发布新产品时收到错误消息

强制 TypeScript 生成带有.js扩展名的导出/导入;运行 node 16?

如何更新 MongoDB 中对象数组中的键?

try 运行迁移时的 Typeorm:缺少必需的参数:dataSource

如何promise AWS JavaScript 开发工具包?

eslint - vscode 的可选链接错误

Node.js + Express 上的多个视图路径

Node.js + Express:应用程序不会开始监听端口 80

node 应用程序是否有任何独立的 gui 模块

Node.js `--nolazy` 标志是什么意思?

如何判断MongoDB本机nodejs驱动程序中是否存在集合?