Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax调用重定向到php文件,而不是调用另一个php文件_Javascript_Php_Ajax - Fatal编程技术网

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请求无法从服务器端重定向用户浏览器。我建议如果登录成功,为要处理的ajax
success()
函数传递一个成功标志,然后让它使用
window.location.href
执行重定向


如果你没有意识到,你的脚本总是会成功返回。即使您
回显“错误”。您需要实际形成一个失败的HTTP状态代码,以便执行错误函数,或者在代码中出现错误

你认为
$hashed_password
会从哪里神奇地出现?您必须从执行的语句中获取数据,才能看到itAn ajax调用不会使页面重定向,整个要点是在“幕后”发出请求,而不重定向。因此,我使用ajax调用的原因是因为我最初的设计是不离开页面,这让我怀疑这是否可能,所以我试着把它变成一个重定向。@RiggsFolly说得好,我甚至没有看到我忘记查询它。只是补充一句,当你提出ajax请求时,php脚本运行的是一个完全不同的过程来表示你的页面负载。上下文与页面本身是分离的,因此您无法执行任何希望更改页面行为的操作,除非您将数据返回给JS并让JS处理所有内容:)