PHP中使用AJAX返回变量时服务端代码无法执行问题求助
问题解决方法
核心错误
你代码里的Ajax配置存在语法错误,导致回调提前执行、请求逻辑异常:
success配置项需要传入函数引用,你当前写的success: itsucceeded()带了函数执行括号,相当于代码运行到这段时就直接执行itsucceeded函数,把它的返回值(undefined)赋值给success回调。点击按钮时并不会等待Ajax请求完成就触发了回调逻辑,所以你看起来回调跑了,但实际请求要么还没完成、要么被提前中断,自然看不到wattapain.php的执行效果。
修正步骤
- 修改Ajax的success配置,去掉括号传入函数引用:
function hiya(){ $.ajax({ url: "wattapain.php", type: "POST", data : {clicked: "john"}, success: itsucceeded // 仅写函数名,不传执行括号 }) }
- 给回调函数加参数,接收wattapain.php的返回结果,验证接口执行情况:
// 加res参数接收接口返回内容 function itsucceeded(res){ console.log("wattapain.php返回结果:", res); // 正常会打印 HIjohn console.log("great"); document.body.insertAdjacentHTML("beforeend", "<?php echo 'a change hast occured';?>"); }
调试验证方法
如果修改后还有问题,打开浏览器开发者工具的「网络」面板,点击按钮后查看是否有wattapain.php的请求:
- 若请求状态码为404:检查wattapain.php和addtodb.php是否在同级目录,路径是否拼写正确
- 若请求状态码为500:检查wattapain.php的PHP语法是否存在错误
- 若请求响应内容和你写的一致:说明wattapain.php已经正常执行
内容的提问来源于stack exchange,提问作者PanPan
相关产品推荐
相关产品推荐

