启用CORS的服务器不拒绝请求

Sam*_*roe 4 node.js cors express restify

我试图使用快速Cors与我的resitfy服务器,它似乎并没有否认来自其他ips的请求.我在本地工作所以我尝试将原点设置为随机的公共IP,但我的所有请求仍在进行中

这是我的路线:

module.exports = function(app) {
    var user = require('./controllers/userController');
    var cors = require('cors');
    var corsOptions = require('./cors.json');


    app.post('/auth/signup', cors(corsOptions),user.createUser);
    app.post('/auth/login', cors(corsOptions), user.validateUser);
    app.post('/auth/generateKeys', cors(corsOptions), user.generateKeys);
    app.post('/auth/generateToken', user.generateToken);
};
Run Code Online (Sandbox Code Playgroud)

这是我的cors.json文件,我已经设置了一个随机的ip:

{
    "origin": "http://172.16.12.123",
    "optionsSuccessStatus": 200,
}
Run Code Online (Sandbox Code Playgroud)

在路线上设置了cors我可以在邮递员中看到以下内容,但请求仍在进行中?我希望访问被拒绝响应.

Access-Control-Allow-Origin→ http://172.16.12.123

sid*_*ker 6

CORS配置本身不会导致服务器拒绝来自任何IP的请求.你不能只通过CORS配置来做到这一点.

当您使用CORS支持配置服务器时,服务器唯一不同的做法就是发送Access-Control-Allow-Origin响应头和其他CORS响应头.而已.

CORS限制的实际执行仅由浏览器完成,而不是由服务器完成.

因此,无论您使用哪种服务器端CORS配置,服务器仍然继续接受来自所有客户端的请求,否则它们将来源; 换句话说,来自所有来源的所有客户端仍然继续从服务器获得响应,就像它们一样.

但是,如果服务器将请求发送到opts-in以允许请求通过响应允许该源的标头,浏览器将仅将来自跨源请求的响应暴露给在特定源运行的前端JavaScript代码Access-Control-Allow-Origin.

这是使用CORS配置唯一可以做的事情.您不能仅通过执行任何服务器端CORS配置使服务器仅接受并响应来自特定源的请求.为此,您需要使用除CORS配置之外的其他内容.