我使用jQuery Cookie插件(下载和演示以及带注释的源代码)来设置和读取cookie.我正在我的本地机器上开发页面.
以下代码将在FireFox 3,IE 7和Safari(PC)中成功设置cookie.但如果浏览器是谷歌浏览器并且该页面是本地文件,则它不起作用.
$.cookie("nameofcookie", cookievalue, {path: "/", expires: 30});
Run Code Online (Sandbox Code Playgroud)
我所知道的:
因此,Cookie仅针对本地文件上的Google Chrome失败.
可能的原因:
任何人都可以确认这一点并确定根本原因吗?
前端位于localhost:4200,后端位于localhost:8080
我在后端和前端实现了CORS配置,所有其他API请求都可以工作.但是,Set-Cookie标志不会在我的浏览器中创建cookie.
我甚至在chrome中禁用了CORS.
当我使用Postman发出POST请求时,我正确地在Cookie选项卡中看到Cookie.我没有在网络浏览器中看到cookie.
选项请求
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:54.0) Gecko/20100101 Firefox/54.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Access-Control-Request-Method: POST
Access-Control-Request-Headers: content-type,credentials
Run Code Online (Sandbox Code Playgroud)
选项回应
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Access-Control-Allow-Origin: http://localhost:4200
access-control-allow-credentials: true
access-control-allow-methods: POST, GET, OPTIONS, DELETE
access-control-max-age: 3600
access-control-allow-headers: Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers, credentials
Allow: GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH
Content-Length: 0
Date: Fri, 30 …Run Code Online (Sandbox Code Playgroud)