ajax是怎么发请求的和浏览器发的请求一样吗?cookie

下午设置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

原文地址:https://www.cnblogs.com/efan/p/5143051.html