我已经设置了我的Codeigniter应用程序,以便我可以通过Ajax上传文件。我按照本教程http://net.tutsplus.com/tutorials/javascript-ajax/how-to-upload-files-with-codeigniter-and-ajax/
进行了操作检查我的原始表单以查看是否已调用ajax请求,如果没有,则会显示回退CI表单验证/错误消息。
我使用 - $this->input->is_ajax_request()
我的代码看起来像这样:
if($this->input->is_ajax_request()){
// process ajax form data
} else {
if($this->form_validation->run() == FALSE) {
$data['success'] = 0;
$data['errors'] = validation_errors();
} else {
$data['success'] = 1;
}
$this->load->view('form', $data);
}
在做了一些调查之后,我发现我无法应用相同的技术,因为它实际上不是ajax请求,因此我不确定如何使用这种方法。如果有人能指出我正确的方向,那将是伟大的。我不喜欢它完全依赖于ajax,我喜欢有一个后备选项。我在评论中注意到有人在他们的ajaxfileupload.js中设置了一个CSFR cookie,但说实话我对js不太热,所以我不知道从哪里开始。提前谢谢。
答案 0 :(得分:1)
在您的AJAX请求中以及其他所有可以发布键/值的内容:
ajax : 1
然后在你的控制器中:
if( $this->input->post('ajax') == 1 ) {
// process ajax form data
}
else
{
// form validation
}
希望这有帮助。