【问题标题】:PHP Header Redirect Does not Work Within The Ajax RequestPHP 标头重定向在 Ajax 请求中不起作用
【发布时间】:2021-07-16 20:48:22
【问题描述】:

用户填写输入字段并提交后,我使用 ajax 请求完成注册过程。在此 register.php 中,我想在将用户信息插入数据库后将用户重定向到另一个页面。一切都很好,直到 header() 函数才输出任何内容。下面的代码没有重定向,好像什么也没发生一样处理ajax请求的回调函数。我真的被困在这里,我不知道该怎么办。我可以尝试 javascript 解决方案,但我更喜欢 php 解决方案。 代码:

header("Location: http://localhost/profil.php", true, 307); 
exit();

【问题讨论】:

  • 只有一个问题:如果您打算在操作后重定向到另一个页面,为什么要使用 AJAX(让用户留在当前页面)?
  • 这是个好问题。这可能很奇怪,但如果用户注册为学生,我不使用 header() 并且只更新索引页面。但是,如果用户已注册为教师,我想将他们重定向到他们的个人资料页面。这是它变得复杂的地方,学生部分工作得很好。但是由于 header() 不起作用,我无法将教师重定向到他们的个人资料页面。
  • 我明白了。如果在学生登录时不要重新加载页面很重要,请参阅the JS solution。否则,如果您不介意页面刷新,您可以将登录表单发布到索引,如果用户是教师,则可以在处理表单提交时选择重定向。
  • 在您的 Javascript 中重定向,在您获得成功响应后

标签: php redirect header


【解决方案1】:

可以在ajax成功回调函数中使用JavaScript重定向:

success: function(data) { 
   window.location.href = 'http://localhost/profil.php';
}

无法通过 PHP 标头重定向来完成,因为这只会重定向 ajax 调用,而不是原始浏览器窗口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    相关资源
    最近更新 更多