Node和Express相当新。我有一个sails.js应用程序,它依赖于知道请求的来源,因为我需要对请求进行身份验证来自已注册的域。
我在日志中看到原点偶尔是空的,为什么会发生这种情况?依赖原始属性不是一个好主意,还有其他选择吗?
由于
答案 0 :(得分:11)
如果用户来自ssl加密网站,则可能隐藏原点。
另外:某些浏览器扩展会从http请求标头中删除origin和referer,因此origin属性将为空。
您可能希望创建某种身份验证令牌并将其作为参数传递,而不是依赖于请求标头。特别是因为标题可以伪造/操纵。
答案 1 :(得分:1)
尝试一下
var host = req.headers.host;
OR
var host = req.get('host');
答案 2 :(得分:0)
尝试一下:
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", req.header('origin'));
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.header("Access-Control-Allow-Credentials","true");
next();
});