我正在使用nodejs和angularjs 1.6.4。在 localhost 上一切都运行良好,但是当我通过 Github 将代码推送到 Digital Ocean Droplet 时,cookie 不起作用。我保存到 cookie 的所有内容都不会出现在 Cookie 存储中。为什么会发生这种情况?
更新
当我转到 VPS 上的登录页面时,出现警告:“此页面包含在非安全上下文中输入的密码或信用卡。地址栏中已添加警告”
相关代码如下:
$scope.login = function () {
UserService.login($scope.user).then(function (result) {
if (result.data.success) {
$rootScope.userLogin = result.data.data.name;
//------------------
var day = new Date();
day.setDate(day.getDay() + 30);
var options = {
domain: "localhost",
httpOnly: true,
expires: day
};
// cookie does not work, nothing in Cookie Storage
// but it works perfectly on localhost
$cookies.put('token', result.data.data.token, options);
$cookies.put('name', result.data.data.name, options);
// the session storage work greatly
$sessionStorage.user = 'heheeheh';
flash.success = result.data.message;
$state.go('home');
} else {
flash.error = result.data.message;
}
});
}
更新:
我在亚马逊 ec2 上创建了另一个 VPS,但它仍然无法工作。
最佳答案
我发现只需将domain
选项从localhost
更改为服务器的IP
关于angularjs - Cookie 在 localhost 上运行良好,但在 VPS 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46585441/