0

我的应用程序有问题。我使用 Express/node 作为 API 并尝试使用 React 访问它,这与 Axios 配合得很好。

现在我尝试了一个 DevExpress 网格组件来显示数据。获取数据工作正常,但如果我想编辑和保存,我总是会遇到 CORS 错误。

我在快递上的设置:

app.use(
  cors({
    origin: '*',

    methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
  })
);

API 如下所示:

router.put('/dataToEdit', auth, (req, res) => {
  MasterData.updateData(req, res);
});

如果我想调用并绑定到网格:

  const dataSource = createStore({
    key: 'helperboxTypeId',
    loadUrl: `${url}/getAlldataToEdit`,
    insertUrl: `${url}/dataToEdit`,
    updateUrl: `${url}/dataToEdit`,
    deleteUrl: `${url}/dataToEdit`,
    onBeforeSend: (method, ajaxOptions) => {
      ajaxOptions.headers = {
        'Content-Type': 'application/json',
        'x-auth-token': localStorage.token,
      };
      ajaxOptions.crossDomain = true;
    },
  });

我尝试了它,我认为所有可能的设置星座,在我问这个问题之前,我在几个论坛中搜索了大约 1 天 :) 也许有人正在使用相同的组件并且可以以某种方式提供帮助。错误是:

Access to XMLHttpRequest at 'http://localhost:5000/api/masterData/dataToEdit' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

另一种解决方案可能是我在那里使用 Axios 但无法集成它。

提前谢谢了!

4

2 回答 2

0

您应该允许 Access-Control-Allow-Origin 如下:

app.all('/*', function (req, res, next) {
 res.header("Access-Control-Allow-Origin", "*");
 res.header("Access-Control-Allow-Headers", "X-Requested-With");
 next();
});
于 2021-08-24T12:01:58.147 回答
-1

终于我找到了,谢谢你大开眼界的评论:)

问题是我在后端 server.js 的顶部错过了我几周前添加的一行...

app.get('/', (req, res) => res.send(text.SERVER_API_RUNNING));

并且似乎如果我添加 cors 设置,那么它仅适用于我的 API 的一部分。

于 2021-08-24T18:47:49.703 回答