今天试了下用thinkphp写个登录功能,发现还是有点小坑的,基础很重要啊
1.jquery ajax post请求回调函数死活不执行!
代码是这个样子的:
var url = "http://localhost:8082/TP/JAP/index.php/Admin/User/login" var postDate={'userName':userName,'pwd':pwd}; $.post(url,postDate,function (res) { //code },'JSON');
请求的页面执行
public function login() { if(empty($_POST)){ $this->display(); }else{//var_dump($_POST);
resopnseJson(1,"登录成功",null); }}resopnseJson()时这么定义的
function resopnseJson($status,$message,$dataArr){ $res = array( 'status' => $status, 'message' => $message, 'data' => $dataArr );exit(json_encode($res)); }
那么,为啥执行我的function(res){...}呢?就是因为后边我定义了返回的格式是JSON(也可以是text),本来也没啥,resopnseJson返回的本来就是json,但是坏就坏在我在前边写了var_dump($_POST),这样就破坏了返回的内容格式(不完全是json)切记,在返回前不要有任何非json的输出
2.Common/Common/function.php 定义的函数不执行
这是一个公共模块,定义的工具函数都写在这里边,用的时候直接写函数名就可以了!
2.1一定写成function.php,这是thinkphp底层加载的名字,别的名字不可以
2.2有新的函数添加,要删除Runtime/Common~runtime.php缓存,否则说找不到函数
2.3总不能每修改函数就删除缓存吧,太麻烦了,在入口文件(index.php) 开启debug模式:define('APP_DEBUG',true)
(我写成了define('DEBUG',true),害得我搜了半天,真是粗心害死人
这个一句就不会生成一般的缓存了,但是模板缓存还是会生成(因为模板缓存是必须的)。