我正在尝试设置一个React前端来向Express后端发送Axios请求。Localhost:3000 包含我的 React 应用程序,localhost:3001 包含我的 Express 应用程序。我正在 React 端执行如下 Axios 请求:
axios.get('localhost:3001/')
但是,我收到以下错误。
Access to XMLHttpRequest at 'localhost:3001/' from origin 'http://localhost:3000' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
我已经将 npm cors 模块导入到我的 Express 后端,并按如下方式使用它:
var cors = require('cors');
var app = express();
app.use(cors());
但是,我的 React 应用程序仍然遇到相同的 CORS 问题。
我通过console.logging res检查了res对象到终端,看到cors()正在修改http标头,如下所示:
...
[Symbol(isCorked)]: false,
[Symbol(outHeadersKey)]:
[Object: null prototype] {
'x-powered-by': [ 'X-Powered-By', 'Express' ],
'access-control-allow-origin': [ 'Access-Control-Allow-Origin', '*' ] } }
访问控制允许来源是否应该采用列表值?最终,我希望解决我的 React CORS 问题,并且想知道这是否是预期行为。
axios.get('localhost:3001/')
您正在尝试使用通信方案localhost
向名为3001
的服务器发出请求。
你可能想要axios.get('http://localhost:3001/')