【问题标题】:$.ajax post redirect via php not working$.ajax 后通过 php 重定向不起作用
【发布时间】:2018-08-15 07:54:12
【问题描述】:

我正在尝试通过 $.ajax 帖子上的 php 重定向,但它似乎不起作用

这是ajax

$("#customer_logout_link").click(function() {
    $.ajax({
        type: "POST",
        data: {
            var: 'value'
        },
        dataType: 'text',
        success: function(data) {

        }
    });
});

这是php代码

<?php

if (isset($_POST["var"]))
{
    header("location: accounts_login.php");
    exit;
}
?>

ajax 命中 php 代码和响应也显示成功。但我想从 php 重定向。我错过了什么?

【问题讨论】:

  • 您在哪个 url 上发送 ajax 请求? $.ajax({ url: 'some.php'...
  • 响应中有任何 php 错误?
  • var 用于声明为变量等。 var self = '一些字符串';在数据处使用其他内容:{var:'value'},
  • 使用javascript重定向? ajax 请求是来自页面的另一个不同的 http 请求,因此重定向标头仅适用于该请求。
  • 你有很多unclosed questions,对吧?你知道该怎么做吗? meta.stackexchange.com/questions/5234/…感谢所有回答者和未来的读者:)

标签: php ajax post


【解决方案1】:

您不能这样做,因为重定向将在 AJAX 请求中完成。但是您可以从 PHP 中检测到某些内容以在 PHP 中进行重定向。

例子:

$("#customer_logout_link").click(function(){
   $.ajax({
      type: "POST",
      data: {var:'value'},
      dataType: 'text',
      success:function(data){
        if (data.indexOf('Location:') === 0) {
                window.location.href = data.substr(10);
            }
      }
    });
});

在你的 PHP 中:

if (isset($_POST["var"]))
{

    echo "Location: accounts_login.php";
    exit;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-19
    • 2017-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多