⑴ thinkphpcookie設置domain不生效
thinkphpcookie設置domain不生效的原因如下。
1、domain參數設置錯誤:在設置cookie的domain參數時,需要確保它的值是正確的域名格式,比如example.com。如果domain參數設置不正確,瀏覽器是不會接受該cookie的。
2、設置的域名與當前域名不匹配:如果您在本地開發環境中設置了cookie的domain參數,但是在實際生產環境中使用了不同的域名,那麼cookie就不能跨域傳遞了。
3、瀏覽器設置阻止了cookie:有些瀏覽器可能會阻止cookie的設置,可以檢查瀏覽器的cookie設置,確保它們沒有被禁用。
⑵ php js跨域請求,並設置cookies
首先要說的是,閣下的問題看起頗費神,中文英文符號混雜,大小寫混雜,讓閱讀者看起相當吃力。
其次,你跨域,JS不能使用POST和GET請求的,這是瀏覽器安全規則,不過可以使用其它辦法來獲得類似結果。
JS跨域,POST可以通過提交隱藏表單至隱藏框架頁來得到請求結果。而GET請求則可以在目標地址後面加上要請求的GET參數然後抓取目標頁的所有網頁內容,再通過正則處理獲得結果;也可以使用JSON來獲取(詳情請自行學習JSON,很簡單的)。
閣下的問題,只是獲取COOKIE時間,那麼可以直接通過JS抓取目標頁或JSON獲得。而B域名的cookies.php,完全不需要訪問index.php來獲得上一個COOKIE的時間,因為它們是同一個站,index.php能訪問到的COOKIE,cookies.php也能訪問到。
B域名的cookies.php參考如下(僅供參考,具體請根據自己情況另行寫代碼):
if(isset($_COOKIE["user"]))//
$time=$_COOKIE["user"];//
else
$time=0;//
$_COOKIE["user"]=time();
echo$time;
//或輸出JSON,請自行學習
終上,僅是提供一個思路,更多的還是要靠閣下自行摸索學習。
另外,這種跨域請求,建議使用JSON,因為它簡單方便。當你學會了,就表示你會寫介面和使用介面了(雖然這個只是最簡單的介面)。當然除了JSON還可以使用XML,只是性能稍差一些,也不錯
⑶ thinkphp6解決 CORS 跨域
1,在app/middleware.php中添加
中間件,這樣就改成了
*是不安全的,可沖早以在config/cookie.php配置cookie 有效域名的domain
如果介面悶判凳請求發送了token,會提示Access-Control-Allow-Headers這個問題螞旅,tp6默認是這樣
可以在'Access-Control-Allow-Headers' 這一樣加上XXX-token,
我在搞這個時還遇見post請求變成get
把method改成了type