Javascript Ajax调用重定向到php文件,而不是调用另一个php文件
因此,在提交我的表单类Javascript Ajax调用重定向到php文件,而不是调用另一个php文件,javascript,php,ajax,Javascript,Php,Ajax,因此,在提交我的表单类.login时,这会触发对login.php的ajax调用login.php内部的welcome.php调用,以确保加密密码与数据库中的密码匹配,并且输入的用户名存在于数据库中。提到我的ajax调用在尝试运行时成功了,但没有重定向到我的welcome.php也是很有帮助的。所以,我的问题是,我是在正确的庄园里进行的吗 $('.login')。在('submit',function()上{ //序列化表单 var formData=$(this.serialize(); $
.login
时,这会触发对login.php
的ajax
调用login.php
内部的welcome.php
调用,以确保加密密码与数据库中的密码匹配,并且输入的用户名存在于数据库中。提到我的ajax
调用在尝试运行时成功了,但没有重定向到我的welcome.php
也是很有帮助的。所以,我的问题是,我是在正确的庄园里进行的吗
$('.login')。在('submit',function()上{
//序列化表单
var formData=$(this.serialize();
$.ajax({
键入:“POST”,
url:'login.php',
数据:formData,
成功:函数(){
警惕(“成功”);
},
错误:函数(xhr){
警报(“失败”);
}
})
.完成(功能(数据){
})
.失败(功能(错误){
控制台日志(数据);
});
返回false;
});代码>
*****************************************************************
用户名
暗语
现在注册
Ajax的要点是在不离开当前页面的情况下发出HTTP请求。浏览器似乎没有重定向,因为结果返回到Ajax处理程序,而Ajax处理程序对结果不做任何处理(您的done
函数为空)
您的目标似乎是发出HTTP请求,然后显示欢迎页面
您不应该使用Ajax。只需使用常规表单提交即可
如果提交的数据有问题(大多数情况下不会有问题,因此不值得在这种情况下应用Ajax),则重新显示表单。这是可能的,但是您永远不会到达重定向调用,因为
if语句中的$hashed_password
未定义
这将抛出一条错误消息,但您需要使用诸如chrome inspector>network>login.php之类的工具来查看响应
希望这有助于将来的调试:)您需要使用javascript重定向页面。Ajax请求无法从服务器端重定向用户浏览器。我建议如果登录成功,为要处理的ajaxsuccess()
函数传递一个成功标志,然后让它使用window.location.href
执行重定向
如果你没有意识到,你的脚本总是会成功返回。即使您回显“错误”代码>。您需要实际形成一个失败的HTTP状态代码,以便执行错误函数,或者在代码中出现错误 你认为$hashed_password
会从哪里神奇地出现?您必须从执行的语句中获取数据,才能看到itAn ajax调用不会使页面重定向,整个要点是在“幕后”发出请求,而不重定向。因此,我使用ajax调用的原因是因为我最初的设计是不离开页面,这让我怀疑这是否可能,所以我试着把它变成一个重定向。@RiggsFolly说得好,我甚至没有看到我忘记查询它。只是补充一句,当你提出ajax请求时,php脚本运行的是一个完全不同的过程来表示你的页面负载。上下文与页面本身是分离的,因此您无法执行任何希望更改页面行为的操作,除非您将数据返回给JS并让JS处理所有内容:)