我正在从前端React应用程序发出请求,并使用localhost:80在服务器上运行它。在浏览器中查看请求和标头时,Chrome会自动删除导致CORS错误的端口号。 Chrome为什么会删除此端口号?在这种情况下,最佳做法是什么?我只是将端口从80更改为8080,就解决了这个问题。
我已将所有类型的HTTP请求的标头设置为Access-Control-Allow-Origin,但这似乎无法解决问题。这也使我相信请求标头上缺少端口是问题的根本原因(这就是为什么我将端口从80更改为8080的原因。)
app.get('*', (req, res) => {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE'); // If needed
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type'); // If needed
res.setHeader('Access-Control-Allow-Credentials', true);
}
此处无法使用端口
app.listen(80, err => {
if (err) {
return console.error(err);
}
console.log(
=====================================================
-> Server (${chalk.bgBlue('Hot reload')}) (running) on ${chalk.green(
'localhost',
)}:${chalk.green('80')}
=====================================================
,
);
^^此端口无法正常工作,Chrome删除了网址中的端口
更改了端口
app.listen(8080, err => {
if (err) {
return console.error(err);
}
console.log(
=====================================================
-> Server (${chalk.bgBlue('Hot reload')}) (running) on ${chalk.green(
'localhost',
)}:${chalk.green('8080')}
=====================================================
,
);
^^这个正在运行,chrome在URL中留下了端口
我希望CORS允许请求通过,即使没有指定端口,但都没有发生。我正在运行一个node.js服务器,后端使用graphql,前端使用了react框架,并且cors版本是“ cors”:“ ^ 2.8.4”
答案 0 :(得分:0)
端口80是万维网(www)已使用的默认端口。是否有理由需要专门使用此端口号(我猜是为了本地开发)?