【问题标题】:REACT, NODE, EXPRESS Error when connect to API连接 API 时出现 REACT、NODE、EXPRESS 错误
【发布时间】:2018-11-12 09:47:57
【问题描述】:

我收到错误:

localhost/:1 Failed to load http://localhost:5000/api/hello: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

这是我的异步 POST:

async function submitToServer(data){

  try{
      let response = await fetch('http://localhost:5000/api/hello', {
          method: 'POST',
          headers: {
            'Content-type' :  'application/json',
          },
          body: JSON.stringify(data),
        });
        let responseJson = await response.json();
        return responseJson;
  }   catch (error) {
          console.error(error);
  }
}

这是我的服务器:

const express = require('express');

const app = express();
const port = process.env.PORT || 5000;

app.get('/api/hello', (req, res) => {
  res.send({ express: 'Hello From Express' });
});

app.listen(port, () => console.log(`Listening on port ${port}`));

我应该怎么做才能将此信息发送到 API?
我需要创建一个端点还是什么?

所以我安装了cors npm
现在我有这些错误:

POST localhost:5000/api/hello 404(未找到)

SyntaxError: Unexpected token

我现在能做什么?

【问题讨论】:

标签: reactjs api express endpoint


【解决方案1】:

您没有从快递服务器返回 JSON。

res.send({ express: 'Hello From Express' });

应该是

res.json({ express: 'Hello From Express' });

另外,您为GET 定义了路由,但您发送了一个POST 请求。所以你的处理程序应该是:

app.post('/api/hello', (req, res) => {
  res.json({ express: 'Hello From Express' });
});

【讨论】:

  • 静止。 StepOneValidationForm.js:42 SyntaxError: Unexpected token
  • 好的,我现在如何显示这些数据?
  • 提出一个新问题。
猜你喜欢
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 2020-08-21
  • 2018-02-10
  • 1970-01-01
  • 2022-10-07
  • 2021-07-07
相关资源
最近更新 更多