【问题标题】:Cannot set the cookie DOMAIN in VueJS using VUE-COOKIES无法使用 VUE-COOKIES 在 VueJS 中设置 cookie DOMAIN
【发布时间】: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.comme.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


【解决方案1】:

正如@Taplar 所解释的:

不能为不属于您自己的域的域创建 cookie。例如,myplace.me.com 可以为 myplace.me.comme.com 创建 cookie,但不能为 anything 其他。

来源取决于 URL 中的内容。浏览器 URL 中的内容为:

[protocol]://[domain]:[port]
http://  192.168.1.1 :8080

这决定了您的来源,以及 cookie 查找的内容。


  • 我会尝试在托管后端 API 的同一台机器上部署 VueJS 应用程序,也许这会起作用。谢谢。

  • 更新:@Lawrence Cherone 解释:

“后端”应该设置cookie

我重写了后端代码,它成功了!非常感谢!!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-21
    • 1970-01-01
    • 2018-11-18
    • 1970-01-01
    相关资源
    最近更新 更多