浏览器发送OPTIONS请求是不是将cookie带到服务器?

时间:2016-04-14 03:50:39

标签: angularjs spring-mvc cookies cors

在Angularjs config档案中。

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

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

POSTPUT请求都可以。但是有一个请求使用&#34; OPTIONS&#34;哪个方法,浏览器发送请求的方法是&#34; OPTIONS&#34;。那时,服务器无法对请求进行身份验证。因为没有cookie。所以浏览器会发送&#34; cookie&#34;请求,它可以将Server带到movies_actor=[<Movie: DJango>, <Movie: Paloma de papel>, <Movie: Asu Mare: la película>, <Movie: Mariposa negra>, <Movie: Mañana te cuento>, <Movie: No se lo digas a nadie>] movies_genres=[<Movie: Dias de Santiago>, <Movie: Ciudad M>, <Movie: DJango>, <Movie: Mariposa negra>, <Movie: No se lo digas a nadie>, <Movie: La Gran Sangre: La Pelicula>, <Movie: La Ciudad y Los Perros>, <Movie: Paloma de papel>]

1 个答案:

答案 0 :(得分:0)

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

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

  

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

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

来自:https://stackoverflow.com/a/34640755/3279156

相关问题