【问题标题】:Browser send the OPTIONS request does not bring the cookie to the server?浏览器发送OPTIONS请求不带cookie到服务器?
【发布时间】:2016-08-05 10:38:43
【问题描述】:

在 Angularjs config 文件中。

.config(function($httpProvider) {
    $httpProvider.defaults.withCredentials = true;
})

front-end,上使用Angularjs的应用程序在backend上使用Spring MVC。当用户登录应用程序时,后端将session 写入front-end。所以应用程序使用cookie来进行身份验证。

GETPOST 请求都可以。但是有一个请求使用“PUT”的方法,浏览器发送请求的方法是“OPTIONS”。那时,服务器无法验证请求。因为没有cookie。所以浏览器发送“OPTIONS”请求,可以将cookie带到Server

【问题讨论】:

    标签: angularjs spring-mvc cookies cors


    【解决方案1】:

    您应该确保您的服务器单独处理 OPTIONS 请求,并且不会通过通常的过滤器运行它们(假设您使用的是基于 Java 的后端)。但请确保 CORS 过滤器将所有 Allow-* 标头添加到它们各自的响应中。

    这些请求应被视为未经身份验证,这意味着它们不需要凭据,不绑定到特定会话,最重要的是不要设置任何可能影响您的会话的 cookie。

    由于会话 ID 不匹配,CORS 过滤器会阻止请求。

    这是一种误解。 CORS 与任何用户会话无关。由于新创建的会话 ID 无效,是您的服务器身份验证逻辑阻止了请求。

    发件人:https://stackoverflow.com/a/34640755/3279156

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-07
      • 2013-08-13
      • 2019-03-30
      • 2022-01-21
      • 2011-01-05
      • 1970-01-01
      • 2021-03-30
      • 1970-01-01
      相关资源
      最近更新 更多