下午设置cookie时出现了个问题
用ajax发的post请求php,在php的方法里设置了cookie,然后在浏览器请求的php里打印cookie值但是一直获取不到cookie的值
分析:
1、ajax向php发请求,php里用setcookie是
告诉这个客户端你来设置cookie,然后值是多少,这和自己一直理解的cookie是本地的才联系起来,之前一直搞不明白php的setcookie怎么把手伸到客户端的,哎,丢人
2、而且不同的浏览器cookie存储路径是不一样的,看谷歌和猎豹的图
3、ajax的原理是用XMLHttpRequest 对象或ActiveXObject对象
这个对象可以
- 在不重新加载页面的情况下更新网页
- 在页面已加载后从服务器请求数据
- 在页面已加载后从服务器接收数据
- 在后台向服务器发送数据
具体地址看w3cschool: http://www.w3school.com.cn/xml/xml_http.asp
所以现在的问题是
1、ajax得到命令设置cookie和浏览器设置cookie的目录是一样的吗?
2、XMLHttpRequest 对象发的请求和浏览器发送的请求一样吗?
目前自己发现的区别:
浏览器的请求:
ajax的请求:
其余的头部信息相同,可以看出最下面的X-Requested-With,cookie里的值不一样,但是PHPSESSID是相同的
找出的问题是ajax请求的地址是经过thinkphp路由的,另一个是没过路由的
####更新线
现在来看,问题是ajax的跨域的原因,图中的origin用到了cors的协议,可以看这篇 https://www.cnblogs.com/efan/p/10397174.html