在学习php的道路上,又双叒遇到了奇奇怪怪、意想不到的问题,emmm...其实找到最后,我遇到的问题其实不出在php上,但因为是php的方法没有生效,我们找病症肯定是从它着手的。

  首先。看帖子和php的文档,都说在setcookie之前不能有输出。PHP手册

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

php setcooike()失败的原因之一,希望能帮到你 随笔 第1张

  还试着使用ob_start()、ob_end_flush()输出缓冲,但也没有收到想要的效果。如果你的问题也不在这里,往下看:

  有帖子说是utf-8编码格式bom作的妖

PHP中utf-8之bom引发的问题

另一位朋友给出的解决办法

  那么我使用的是VSCode,右下角有一键转换

php setcooike()失败的原因之一,希望能帮到你 随笔 第2张

  非常爽,嘿嘿...然并卵,问题也不在这里,继续:

cookie设置(前端和后台)

  里边提到了一句话解决了困扰我一天的问题。

XMLHttpRequest发送请求时需要设置withCredentials属性为true,来允许浏览器在自己的域设置cookie值。

如果withCredentials没有设置为true,就会出现Response Headers有Set-Cookie,但是浏览器却没有存储cookie的情况
  那么我在使用nuxt&axios,更改一下设置:~/plugins/axios.js

1 import axios from 'axios';
2 
3 axios.defaults.withCredentials=true;

  nuxt.config.js

1 plugins: [
2     ...,
3     '@/plugins/axios',
4   ]

  重新编译一下:npm run dev

  php setcooike()失败的原因之一,希望能帮到你 随笔 第3张

  哎,终于成功。7拐8拐回到了前端,所以说电影不给彩蛋看完,你永远都不知道故事会TM发生什么转折(笑cry)

  其实以前看axios文档时,还是看到了是否允许携带cookie这个选项,但没想到的是,不给个true,它都不让你设置上,小老板真是霸道。。。Axios中文说明

php setcooike()失败的原因之一,希望能帮到你 随笔 第4张

 

 

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄