情况描述
一个简单的 JQuery.get 请求,以跨域方式请求一个 TP6 的框架,出现页面不断跳转的情况。
前端
静态页面网址:http://192.168.1.102:5501/think/public/html/test.html
AJAX代码:
$.get("http://ss-hcb.local/login/index")
再普通不过的代码,但在浏览器上面不断刷新页面请求
后端
请求地址:http://ss-hcb.local/login/index
浏览器访问正常。
原因排除:
🖥️ 浏览器
Chrome 108 和 Safari 均如此。
换一个请求地址
例如http://ss-hcb.local/index2.php
,无框架,只是简单接受跨域请求:
header("Access-Control-Allow-Origin: *");
echo time();
die();
页面正常。基本可判断是 TP6 的问题。
最基础控制器
新建一个最基础的 Controller,不继承任何父类,进行请求。
🎉🎉🎉 正常得很!
此处需要指出,TP6 实现被跨域访问的原理是在/app/middleware.php
中增加 \think\middleware\AllowCrossDomain::class
TP6的session依然害死人!
基本确定是 session 设置的原因
liveServer会产生两个(多个)请求
这也是原因之一
Jesus Fucks Me!
记住:只要文件变化,LiveServer就会重新加载(即是刷新页面)😂😂😂