关于javascript:无法通过axios发布请求接收Set-Cookie标头

Not Receiving Set-Cookie Header with axios post request

我有一个PHP脚本,如果直接在浏览器中(或由邮递员调用),则可以成功返回一些简单的标头以及set-cookie标头。 我可以从chrome devTools中读取类似的响应标题。 但是,一旦我由Axios调用它,set-cookie标头就不会显示,并且浏览器中也没有保存cookie。

我尝试了不同的操作,例如更改服务器端的响应头以及在axios上使用" withCredentials:true",但没有任何效果。 我什至没有收到错误或任何与cors相关的问题。

PHP:

1
2
3
4
5
6
7
8
header("Access-Control-Allow-Origin: http://localhost:8080");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: POST, GET");
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
header("Access-Control-Max-Age: 99999999");
setcookie("TestCookie","Testing", time() + 3600,"/","localhost", 0);
die();

JS:

1
2
3
4
Vue.prototype.$http = axios.create({
    baseURL: XYZ,
    withCredentials: true
})

所以我的第一个问题是为什么直接调用php脚本时标题会出现? 以及如何通过axios归档以获取标头?


Cookie可能是" httpOnly",这意味着客户端javascript无法读取它。
因此,它不会在Chrome Cookie部分中显示。
在mozilla中测试相同的请求,标题将会显示。