在学习php的道路上,又双叒遇到了奇奇怪怪、意想不到的问题,emmm...其实找到最后,我遇到的问题其实不出在php上,但因为是php的方法没有生效,我们找病症肯定是从它着手的。
首先。看帖子和php的文档,都说在setcookie之前不能有输出。PHP手册
还试着使用ob_start()、ob_end_flush()输出缓冲,但也没有收到想要的效果。如果你的问题也不在这里,往下看:
有帖子说是utf-8编码格式bom作的妖
那么我使用的是VSCode,右下角有一键转换
非常爽,嘿嘿...然并卵,问题也不在这里,继续:
里边提到了一句话解决了困扰我一天的问题。
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
哎,终于成功。7拐8拐回到了前端,所以说电影不给彩蛋看完,你永远都不知道故事会TM发生什么转折(笑cry)
其实以前看axios文档时,还是看到了是否允许携带cookie这个选项,但没想到的是,不给个true,它都不让你设置上,小老板真是霸道。。。Axios中文说明