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