Halo,我正在使用ajax将表单发布到控制器codeigniter中。我想在ajax发布后重定向,但控制器没有重定向。
这是我的ajax
$.ajax({
type:"POST",
url:form.attr("action"),
data:form.serialize(),
success: function(){
},
error: function(){
alert("failure");
}
});
});
});
这是我的控制器
public function checkout_data(){
$this->account_model->checkout_simpan();
redirect('produk/payment/last_steps');
}
这是我的表格
<form class="form-horizontal col-md-offset-3" id="form-checkout" action="<?php echo base_url('produk/payment/checkout_data');?>">
我的代码出了什么问题?
答案 0 :(得分:0)
你这样做错误。
你现在在做什么:
当您向服务器发送ajax-request时,会执行方法checkout_data
,并在其中重定向到另一个URL。但它适用于服务器。因此,在重定向到produk/payment/last_steps
之后,执行方法last_steps
(或绑定到此URL的任何内容),并将其内容返回给ajax-request。
您需要做什么:
使用javascript函数重定向。通常它是document.location
例如。 document.location = "some/new/url"
。
所以我想你的checkout_data
方法应该返回一些字符串。包含重定向的URL。例如:
public function checkout_data(){
$this->account_model->checkout_simpan();
echo 'produk/payment/last_steps';
}
ajax
成功后,你可以使用:
success: function( data ) {
// console.log( data ) // uncomment to check what is received
document.location = data;
},
答案 1 :(得分:0)
1)正确检查您的路径 2)(重要)检查您的控制器中是否有多余的空间