我有一个小NodeExpress服务器,当我试图向服务器发出请求时,它返回403错误,我安装了Cors
,并使用它,并尝试了Chrome浏览器和Postman作为2个客户端,并得到了相同的拒绝错误
var express = require('express')
var cors = require('cors')
var app = express()
app.use(cors())
app.get('/', function (req, res, next) {
res.json({msg: 'This is CORS-enabled for all origins!'})
})
app.listen(80, function () {
console.log('CORS-enabled web server listening on port 80')
})
5条答案
按热度按时间v1l68za41#
我在
MacBook Pro (14-inch, 2021), Apple M1 Pro, macOS Monterey 12.3
上使用firebase serve
时遇到了这个问题更新:
显然原因是
macOS Monterey introduced AirPlay Receiver running on port 5000. This prevents your web server from serving on port 5000. Receiver already has the port.
所以the answer quoted above提出的解决方案是要么关闭AirPlay接收器,要么在另一个端口上运行你的应用。
如果你正在使用Firebase服务器运行你的应用,你可以通过以下方法更改端口:
source
firebase.json文件不适用于firebase serve命令。你必须使用firebase emulators:start命令。
如果你想继续使用Firebase服务,那么它应该像这样使用:
老答案:
这不是一个足够的答案,但我可以通过输入
127.0.0.1
而不是localhost
来绕过这个问题。我不认为这是最好的答案,我也不满意。我一定会回来后,并更新答案,一旦我找到一个更好的答案。jgzswidk2#
只需要使用另一个端口e。g. 5100
bihw5rsg3#
试试这个
chrome://net-internals/#sockets
[冲洗插座池]
kninwzqo4#
有时我在Monterey开发FLASK应用程序和使用Chrome时也遇到了同样的问题。重新启动Chrome总能解决这个问题。我想没有正确地停止应用程序是我案例中的根本原因。
3htmauhk5#
我刚刚遇到这个问题。我的堆栈是Node + Express
有了这个堆栈,上面的解决方案也可以工作。
我只需要换个色情片的号码
app.listen(5000);
//不工作app.listen(8000);
//都很好:)