服务器立即 return 到 ajax post 而不执行重定向代码

The server immediately return to the ajax post without executing a code for redirect

我在这里要做的是在提交时通过 jquery ajax post 将表单值传递给控制器​​中的函数。

这是视图的代码

<form  action="<?php echo site_url('products/paypal')?>" method="post" id="checkoutForm" name="checkoutForm">
   ...
</form>

<script type="text/javascript">
   ...
   $.post($('#checkoutForm').attr('action'), $('#checkoutForm').serialize());
   ...
</script>

控制器将处理 post 变量,然后应执行这行代码 $this->paypal->pay();,将用户重定向到其他 url。 这是控制器中函数的代码 (products.php)

public function paypal() {
    //... paypal configuration
    $this->paypal->pay(); //Proccess the payment
}

这是库中函数的代码 (Paypal.php)

function pay(){

    #Convert the array to url encode variables 
    $vars =  http_build_query($this->config);

    if($this->config['production'] == TRUE){
        header('LOCATION:'.$this->production_url.$vars);
    }else{
        header('LOCATION:'.$this->sandbox_url.$vars);
    }
}

问题是用户没有被重定向。这可能是什么问题?

提前致谢。

如果您从客户端提交 Ajax 表单,您将永远无法从服务器进行浏览器重定向。这就是常规请求和 Ajax 请求之间的区别。您要么需要定期提交表单,要么需要在 Ajax 调用 returns.

后更改客户端的 window 位置