没有收到带有 axios post 请求的 Set-Cookie 标头

新手上路,请多包涵

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

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

PHP:

 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();

记者:

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

所以我的第一个问题是为什么直接调用php脚本时会出现header?我怎样才能存档以通过 axios 获取标题?

原文由 user5242820 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 599
1 个回答

可能 cookie 是 ‘httpOnly’,这意味着客户端 javascript 无法读取它。因此它没有显示在 chrome cookie 部分。在 mozilla 中测试相同的请求,标题将显示出来。

原文由 Kausha Shah 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题