【发布时间】:2014-01-10 09:15:18
【问题描述】:
我一直在使用 node-restify 测试它的 lil 应用程序中实现 CORS,结果发现在浏览器中,行为符合预期,这意味着,在禁用 CORS 的不同来源中,它不起作用,如果启用了CORS,它就起作用了。
然而,棘手的部分是使用 CURL,它总是有效的!我一直在关注这个问题: How can you debug a CORS request with cURL?
我正在这样做:
curl -H 'Origin: http://example.com' http://cors.somewhere.com
并使用 node-restify 示例进行调试
var restify = require('restify');
var srv = restify.createServer();
//srv.use(restify.CORS()); // I enable and disable by uncomment line
function foo(req, res, next) {
res.send("bananas");
next();
}
srv.put('/foo', foo);
srv.get('/foo', foo);
srv.del('/foo', foo);
srv.post('/foo', foo);
srv.listen(process.env.PORT || 8080);
我错过了什么?
谢谢!
【问题讨论】:
-
您需要查看返回的 CORS 标头。另请查看“飞行前”请求。
-
所以CORS安全是由浏览器(不是服务器)实现的,以保护用户:)
标签: node.js rest curl cors restify