我有一个在 localhost:8080 上运行的 REST 后端,它在用户登录时发出一个 cookie。我有一个 Angular2 前端与后端打包在一起。当我运行项目时,angular 会发送 cookie 并将自定义标头附加到后端的请求中。但是,当我使用列表服务器 localhost:3000 运行前端时,angular 不会发送任何 cookie,也不会附加自定义标头。
使用后端运行时的请求:
Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Cookie:io=8Dk6ajOQZyDz-bvXAAAB; jwt=eyJh...H1aCccT2U
Host:localhost:8080
Referer:http://localhost:8080/
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36
X-CSRF-Token:2c8744ff-38ad-49cb-bf07-fe75cd16f827
使用 lite-server 和 apache2 运行
Accept:*/*
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:en-US,en;q=0.8
Access-Control-Request-Headers:x-csrf-token
Access-Control-Request-Method:GET
Connection:keep-alive
Host:localhost:8080
Origin:http://localhost:3000
Referer:http://localhost:3000/
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36
根据我的阅读,cookie 不是特定于端口的,因此应该与来自 localhost:3000 和 localhost:8080 的请求一起发送。
我在后端有一个 CORS 过滤器来接受来自任何来源的所有请求。
- 为什么不附加标题?
- 为什么没有附加cookie?