【问题标题】:Ember: session cookie from api not being setEmber:未设置来自 api 的会话 cookie
【发布时间】:2017-09-16 14:23:08
【问题描述】:

我正在尝试从我的后端 API 为特定的 ember 数据模型(“购物车”)设置会话 cookie。

在模型上调用 createRecord 时,我看到了对我的 API 的 XHR“POST”请求。我看到 API 处理它并做出响应,我在响应标头中看到 Set-Cookie...但浏览器中没有 cookie!

ember 应用程序和 api 在同一个域 (localhost) 上,但在不同的端口上。我用谷歌搜索,似乎是cookies are not port-specific。所以我看不出是什么阻止了它。

我尝试使用 Chrome 扩展 Postman 向 API 提交相同的 POST,它工作得很好 - 在浏览器中设置 cookie。当请求来自 ember 应用程序时,它不起作用。虽然我没有在任何地方看到任何错误。

ember 中是否存在阻止设置 cookie 的内容?我不明白为什么会有,我认为浏览器应该在 ember 重新发挥作用之前处理响应标头。

我要在这件事上陷入死亡的兔子洞!任何帮助表示赞赏。这是请求/响应。

【问题讨论】:

  • 您是否尝试过使用其他域?在 Chrome 中,有时 Firefox 中存在 localhost 的 cookie 问题。见herehere
  • 这是个好主意 - 但仍然无法正常工作:(

标签: cookies ember.js ember-data


【解决方案1】:

如果您尝试跨域请求,您可能必须同时授予应用程序和服务器上的权限。如果是这种情况,请继续阅读CORS。此外,如果您有 httpOnly cookie,则必须在 ajax 请求中将 withCredentials 字段设置为:

      xhrFields: {
        withCredentials: true
      }

您可以在 withCredential here 上阅读更多信息。这两个是cookie问题的主要因素。

【讨论】:

  • 谢谢!!我在这件事上花费的时间比我想承认的要多。
猜你喜欢
  • 2019-11-18
  • 1970-01-01
  • 2020-11-27
  • 2015-02-26
  • 2011-07-13
  • 1970-01-01
  • 1970-01-01
  • 2020-11-27
  • 1970-01-01
相关资源
最近更新 更多