XAMPP环境下Apache运行嵌入PHP的页面AJAX POST请求无响应求助
问题排查与解决步骤
- 第一步:确认文件命名匹配
你当前将HTML和PHP逻辑写在同一个文件中,该文件必须命名为aaaaa.php,否则AJAX请求的目标地址不存在,会返回404错误。你可以打开浏览器按F12调出开发者工具,切换到「网络」面板,点击按钮后查看对应POST请求的状态码,如果显示404就修改文件名或者把AJAX配置里的url参数改为你当前的文件名即可。 - 第二步:补充AJAX响应处理逻辑
你现有代码中的jQuery AJAX仅配置了发送请求,没有声明接收响应后的处理逻辑,因此哪怕后端返回了正确的POST结果,页面也不会自动更新展示。修改do_post函数内的AJAX代码如下:function do_post() { console.log("at do_post()"); var arr = {"client": "fredi", "action": "mod", "rix": 6, "row": "yarn|white|5.59@"}; $.ajax({ type: "POST", url: 'aaaaa.php', data: arr, success: function(res) { // 打印结果到控制台,同时弹框展示,方便你直接查看 console.log("后端返回内容:", res); alert(res); }, error: function(err) { // 请求出错时打印错误信息 console.log("请求异常:", err); } }) } - 第三步:无需修改php.ini配置
localhost本地环境默认不会拦截同域POST请求,你怀疑的安全机制阻止请求的概率极低,不需要调整配置文件。
可选优化(非必须)
如果你希望POST请求返回的内容不带多余的HTML代码,仅返回纯数据,可以把PHP逻辑移到文件最顶部,修改结构如下:
<?php var_dump($_SERVER["REQUEST_METHOD"]); if ($_SERVER['REQUEST_METHOD'] == 'GET') { echo ("caught GET"); var_dump($_GET); } else { echo ("caught POST"); var_dump($_POST); // POST请求输出完结果直接终止,不返回后续HTML内容 exit; } ?> <!DOCTYPE html > <html> <!-- 后续原有HTML代码原样保留 -->
内容的提问来源于stack exchange,提问作者jim murray
相关产品推荐
相关产品推荐

