服务器立即 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 位置
我在这里要做的是在提交时通过 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 位置