Hello World

Just So So ...

AJAX跨域请求TP6框架的诡异事件

jQuery PHP 0 评

情况描述

一个简单的 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就会重新加载(即是刷新页面)😂😂😂