在Angularjs config
档案中。
.config(function($httpProvider) {
$httpProvider.defaults.withCredentials = true;
})
使用Angularjs
上的front-end,
Spring MVC
使用backend
session
的应用程序。当用户登录应用程序时,后端会将front-end
写入GET
。所以应用程序使用cookie进行身份验证。
POST
和PUT
请求都可以。但是有一个请求使用" OPTIONS
"哪个方法,浏览器发送请求的方法是" OPTIONS
"。那时,服务器无法对请求进行身份验证。因为没有cookie。所以浏览器会发送" cookie
"请求,它可以将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>]
。
答案 0 :(得分:0)
您应该确保您的服务器单独处理OPTIONS请求,而不是通过常规过滤器运行它们(假设您使用的是基于Java的后端)。但请确保CORS过滤器将所有Allow- *标头添加到各自的响应中。
这些请求应视为未经身份验证,这意味着它们不需要凭据,不依赖于特定会话,最重要的是不会设置任何可能影响会话的Cookie。
由于会话ID不匹配,CORS过滤器会阻止请求。
这是一种误解。 CORS与任何用户会话无关。这是由于新创建的会话ID无效而阻止请求的服务器身份验证逻辑。