【发布时间】:2019-06-15 03:54:56
【问题描述】:
- “vue”:“^2.6.10”
- “vue-cookies”:“^1.5.13”
我正在使用 Axios 从 VueJS 应用程序向另一台机器上的后端服务器发送 HTTP POST 请求。响应中返回的值用于创建像“exampleName”:“exampleValue”这样的cookie。到目前为止一切顺利。
问题是在我尝试使用包含后端服务器地址的域创建 cookie 时。
如果没有正确的域值,我会在所有请求中得到 401 状态
在测试期间,我在 devtools 中手动将域的值更改为所需的值(后端服务器的地址),然后申请开始工作(停止接收 401 状态并开始收到 200 OK)。
使用功能时:
api.post('http://...', form).then(response => {
$cookies.set("keyExample", response.data);
});
cookie 已正确创建,我可以在 Chrome 开发工具中看到它,
- 但仍然没有所需的域值:
- 期望:
根据vue-cookies 库的文档,我可以使用类似:
$cookies.set (keyName, value [, expireTimes [, path [, domain [, secure]]])
已经使用所需的域创建 cookie,但每当我尝试此操作时,它都会失败,甚至没有创建 cookie。
我还在努力:
// set domain
this.$cookies.set("key","value",null, null, "192.168.1.1"); // domain address
来自docs,但没有成功...
我的想法正确吗? 有没有其他方法可以处理不同服务器上的请求?
欢迎任何帮助。提前致谢!
【问题讨论】:
-
您不能为不是您自己域的父域的域创建 cookie。例如,myplace.me.com 可以为
myplace.me.com或me.com创建一个 cookie,但不能为其他任何东西。 -
我和这台机器在同一个局域网中,例如:我的IP地址:192.168.1.10;后端服务器IP地址:192.168.1.15;即使这样我也不能这样设置域?
-
没有。来源取决于 url 中的内容。无论您的浏览器 url 中的
[protocol]://[domain]:[port]是什么,那个 决定了您的来源,以及 cookie 查找的内容 -
现在我对域有了更好的了解。非常感谢,我会尝试在托管后端 api 的同一台机器上部署应用程序,也许这样可以。
-
“后端”应该通过 cookie 设置 cookie,如果您没有专门将 cookie 用于会话之类的东西,则应该使用 localstorage,如果您不应该在客户端设置它
标签: javascript cookies vuejs2