我很难让 CORS 工作。我正在尝试从我设置的 Heroku 应用程序中获取数据。我从 Redux 获取,并使用 ExpressJS 作为后端。我一直在查看 CORS 文档,但仍然无法弄清楚。在此处输入链接描述
这就是它在 Express 中的样子
var express = require('express');
var router = express.Router();
var cors = require('cors')
router.options('/', cors())
router.use((req, res, next) => {
res.append('Access-Control-Allow-Origin', ['*']);
res.append('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.append('Access-Control-Allow-Headers', 'Content-Type');
next();
});
router.get('/', cors(), function(req, res, next) {
res.json({...})
}
我在我的应用程序中设置了代理到http://localhost:3001/,但我的应用程序在 3000 上运行。我包括这个以防它可能是问题,但我不知道它是。
我的 Redux 文件是这样设置的
return dispatch => {
const url = "https://app-name.herokuapp.com/users";
return fetch(url, {
method: 'GET',
mode: 'cors',
headers: { 'Content-Type': 'text' }
})
完整的错误是:“加载https://app-name.herokuapp.com/users失败:对预检请求的响应未通过访问控制检查:没有 'Access-Control-Allow-Origin' 标头出现在请求的资源。因此,不允许访问源“ http://localhost:3000 ”。”