JQuery Ajax Post未返回预期数据,显示当前页面源码问题排查
Ajax表单提交异常:服务器返回当前页面源码而非预期数据
本地测试正常,部署到HostGator服务器后,使用JQuery Ajax提交表单时,返回的是当前页面的HTML源码,而非loginvalidations.php应输出的Test Return Data。使用JQuery版本为jquery-3.7.1.min.js。
相关代码
表单HTML
<form id="LogInForm" name="LogInForm" method="post" action="DoLogin.php" title="Log in to access members only features"> <label for="UName" id="UNameLbl" class="bregLbl">Email Address</label> <input type="text" id="UName" name="UName" /> <label for="PWord" id="PWordLbl" class="bregLbl">Password</label> <input type="password" id="PWord" name="PWord" /> <label for="ValidationTxt" id="ValidationTxtLbl" class="bregLbl">Captcha</label> <img src="ValidationImg.php?CB=<?php echo $CB; ?>" id="LogInFormCaptcha" /> <input type="text" id="ValidationTxt" name="ValidationTxt" /> <input class="send" type="submit" id="LoginButton" name="LoginButton" value="Log In" title="Click Here To Log In" /> </form>
JQuery提交脚本
$("#LogInForm").on("submit", function(e){ e.preventDefault(); var unameval = $.trim($("#UName").val()); var pwordval = $.trim($("#PWord").val()); var valtxtval = $.trim($("#ValidationTxt").val()); if (unameval.length == 0 || pwordval.length == 0 || valtxtval.length == 0) { $("#LogInErrMsgBar").show(); $("#LogInErrMsgTxt").html("<ul><li>Please complete all form fields</li></ul>"); } else { var PostData = {uname: unameval, pword: pwordval, valtxt: valtxtval}; $.post("loginvalidations.php", PostData, function(result){ alert(result); }); } });
验证脚本loginvalidations.php
<?php echo "Test Return Data"; ?>
排查与解决方法
- 核对文件路径:服务器上的目录结构可能和本地不同,把
$.post里的相对路径改成绝对路径(比如/loginvalidations.php),避免路径解析错误导致请求到当前页面。 - 检查URL重写规则:HostGator服务器可能有.htaccess重写配置,检查根目录下的.htaccess文件,确保
loginvalidations.php不会被重定向或拦截。 - 确认文件权限:保证
loginvalidations.php的权限为644,让服务器能正常执行该PHP脚本。 - 查看错误日志:登录服务器后台查看PHP错误日志,排查是否有脚本执行报错导致输出异常。
- 调试请求详情:用浏览器开发者工具的网络面板,查看Ajax请求的实际URL、响应状态码和内容,确认是请求地址错误还是服务器返回问题。
内容的提问来源于stack exchange,提问作者Soren
相关产品推荐
相关产品推荐

