【问题标题】:Ajax Post and CodeIgniter not workingAjax Post 和 CodeIgniter 不工作
【发布时间】:2018-02-01 20:35:21
【问题描述】:

我正在尝试回显从 Ajax 收到的代码。但是当我使用 contentType:false, processData:false 时它不起作用。

这是我的 ajax。网址是正确的。如果我用 post_data['file'] 和 contentType:false, processData:false 注释掉该行,我将能够得到回声,但是一旦 contentType:false, processData:false 出现,我什么也得不到。

    post_data = {};
    post_data['file']= document.getElementById('fileToUpload').files[0];
    post_data['paper-type']=$("#paper-input :selected").val();

    $.ajax({
        url:'/admin/upload_paper',
        data: post_data,
        type: 'post',
        contentType: false,
        processData: false,
        success: function(data){
            console.log(data);
        },
        error: function(data){
            console.log(data+"error");
        }
    });

这是来自 CI 的代码 sn-p

public function upload_paper(){       

    echo $this->input->post('paper-type');
    echo "testing";
    echo "testing2";

}

有人知道那是什么吗?谢谢。

【问题讨论】:

  • 您的控制台错误是什么?
  • 你为什么将 content-type 设置为 false
  • console 打印“testingtesting2” 我将 contentType 设置为 false,因为我希望稍后上传文件。为了上传文件,我必须将 contentType 和 ProcessData 设置为 false。
  • 您应该为此使用 FormData 对象
  • 试试这样:url:'<?php echo base_url(); ?>/admin/upload_paper',

标签: php jquery ajax codeigniter


【解决方案1】:

而不是这样做:

post_data['paper-type']=$("#paper-input :selected").val();

试试

var val = $("#paper-input :selected").val();

在 ajax 中:

$.ajax({
    url:'/admin/upload_paper',
    data: {'paper-type':val},
    type: 'post',
    success: function(data){
        console.log(data);
    },
    error: function(data){
        console.log(data+"error");
    }
});

【讨论】:

  • 您好 Kamote,感谢您的帮助。它确实有效,但是当我添加 contentType:false 和 processData:false 时它停止工作。我需要这些以便稍后上传文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-07
  • 2011-07-01
  • 2010-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多