javascript - 通过ajax传递时 header 不会重定向

标签 javascript php jquery ajax

不确定这是否可行,但我有一个使用 AJAX 提交表单的页面,如果满足某些条件,它应该自动将用户带到另一个页面。 header 标记之前不会输出任何内容,它只是一堆条件。

问题: header 重​​定向不起作用...

AJAX

$('form').on('submit', function (e) {
   e.preventDefault();
   $.ajax({
     type: 'post',
     url: '_ajax/add.php',
     data: $('form').serialize(),
     success: function (data) {
       $("input").val('Company Name');
       $("form").hide();
       getInfo();
     }
   });
});

add.php

$row = mysqli_fetch_array($result);
$id = $row['id'];
header("Location: http://localhost/manage/card.php?id=$id");

最佳答案

header 只能在任何正文发送到浏览器之前进行修改(因此名称为 header /正文)。由于您已将 AJAX 发送到浏览器,因此您无法再修改 header 。但是,您可以让通过 AJAX 调用的 add.php 脚本返回 $id 参数。然后可以在 JavaScript 中使用该参数来重定向页面:window.location = 'http://localhost/manage/card.php?id=' + id

有关 PHP header() 的更多信息:http://www.php.net/manual/en/function.header.php

AJAX

$('form').on('submit', function (e) {
   e.preventDefault();
   $.ajax({
     type: 'post',
     url: '_ajax/add.php',
     data: $('form').serialize(),
     success: function (data) {
       window.location = 'http://localhost/manage/card.php?id=' + data;
     }
   });
});

add.php

$row = mysqli_fetch_array($result);
$id = $row['id'];
echo $id;
exit;

关于javascript - 通过ajax传递时 header 不会重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20938989/

相关文章:

javascript - 构造函数及其变量

php - 获取主键作为外键放入其他表中

javascript - Fine Uploader S3 - 无处安全调用异步 "setUploadSuccessParams()"

javascript - 在我的案例中如何更新 <select> 选项?

javascript - jQuery jPlayer 在 iPad 上不显示持续时间

javascript - 在 HTML 文件中加载 json 文件

javascript - 如何将多个 Frida JS 文件/函数导入到运行时 CLI 中?

javascript - 如果 html 页面是主页,如何运行 jquery 脚本...?

php - 运行时如何显示代码错误

php - 如何使用 PHP session 来防止重复表单提交?