Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery重定向和HttpOnly cookies_Jquery_Ajax_Cookies_Httponly - Fatal编程技术网

jQuery重定向和HttpOnly cookies

jQuery重定向和HttpOnly cookies,jquery,ajax,cookies,httponly,Jquery,Ajax,Cookies,Httponly,我们使用jQueryAjax登录。登录服务发出HTTP 302,其位置为登录用户的GET,或(在登录失败的情况下)始终返回未授权HTTP状态的REST端点。在302的同时,我们为JSESSIONID发出一个set cookie。cookie是仅HttpOnly的cookie 当使用直接HTTP表单post时,重定向工作正常,一切都已设置好。当使用JQuery-AJAX时,重定向到GET/user/{userId}不起作用,因为cookie不会随第二个调用一起发送。这个失败的第二次调用应该会触发另

我们使用jQueryAjax登录。登录服务发出HTTP 302,其位置为登录用户的GET,或(在登录失败的情况下)始终返回未授权HTTP状态的REST端点。在302的同时,我们为JSESSIONID发出一个set cookie。cookie是仅HttpOnly的cookie

当使用直接HTTP表单post时,重定向工作正常,一切都已设置好。当使用JQuery-AJAX时,重定向到GET/user/{userId}不起作用,因为cookie不会随第二个调用一起发送。这个失败的第二次调用应该会触发另一个重定向到auth failed端点,但实际上不会。检查后,我发现第二次呼叫
“取消”。这意味着什么?首先我该如何解决这个问题?

您可能违反了同一原产地政策。您登录到的域是否与提供页面/脚本文件的域相同

如果没有,您将需要使用CORS(跨源资源共享)来使cookie保持不变

您可以在此处了解更多信息:


类似的问题以及如何在这里解决:只是在这里清理一个旧问题。虽然这个答案不是完整的答案,但已经足够接近了。基本上,我需要做的是检查JSessionID的完整描述。有两件事在起作用。1) 登录的域是HTTPS,而GET的域是HTTP,因此遇到了Darren提到的CORS问题。2) cookie中存在路径(/auth vs/rest)问题,这导致CORS修复也无法工作。修复路径问题最终解决了问题。