【问题标题】:Cookies only sent to one APICookie 仅发送到一个 API
【发布时间】:2017-05-02 02:41:03
【问题描述】:

由于需求发生变化,我不得不实施 Dropwizard Web 服务来与我们的 SAP Business One 实例进行通信。到目前为止效果很好。

此外,我需要确保只允许经过身份验证的客户端访问 API。为了实现这一点,我使用了由其他已经存在的 Web 服务生成的 JWT。为了与这两个 Web 服务进行通信,我使用了相同的 Aurelia fetch 客户端。

尽管已将 credentials 选项设置为 include 并为 Access-Control-Allow-OriginAccess-Control-Allow-Credentials 标头(http://127.0.0.1:9000 和 @987654328)返回相同的值@) cookie 仅发送到生成 JWT 的 Web 服务,而不发送到 Dropwizard Web 服务。

您可以在下面看到初始化 fetch 客户端的代码。

configuration.useStandardConfiguration()
    .withDefaults
    ({
        credentials: "include",
        headers:
        {
            "Content-Type": "application/json;charset=utf-8"
        }
    });

接下来,在与 go web 服务通信时,Firefox 的开发者控制台中显示了以下屏幕截图。 Cookie 标头按预期发送。

但是,当访问 Dropwizard Web 服务上的资源时,不会发送 cookie 标头。

【问题讨论】:

    标签: javascript cors jwt aurelia


    【解决方案1】:

    在第一种情况下,请求是从http://127.0.0.1http://127.0.0.1 完成的。

    在第二种情况下,请求是从http://127.0.0.1http://192.168.16.22:8090 完成的,不是吗?这是一个 CORS 请求

    也许这是你的问题:Cross domain POST request is not sending cookie Ajax Jquery

    您不能通过 JavaScript 设置或读取 CORS 请求的 cookie。虽然 CORS 允许跨域请求,但 cookie 仍然受制于浏览器的同源策略,这意味着只有来自同源的页面才能读取/写入 cookie。

    【讨论】:

      猜你喜欢
      • 2022-01-03
      • 2021-08-05
      • 2020-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多