Php 如何使用AJAX正确发送FormData()

Php 如何使用AJAX正确发送FormData(),php,jquery,ajax,form-data,Php,Jquery,Ajax,Form Data,当我尝试从我的LTS服务器用AJAX发送FormData时(不是在本地机器上),似乎出现了问题。我怀疑并非所有浏览器都支持FormData,但它在我的本地计算机上运行得非常好,与我在服务器(LTS)上尝试使用的浏览器相同。我在这里有点迷路了,不知道该怎么办 进一步解释: 索引 控制器 function __construct() { parent::__construct(); $config['upload_path'] = './data/picDir/'; $con

当我尝试从我的LTS服务器用AJAX发送FormData时(不是在本地机器上),似乎出现了问题。我怀疑并非所有浏览器都支持FormData,但它在我的本地计算机上运行得非常好,与我在服务器(LTS)上尝试使用的浏览器相同。我在这里有点迷路了,不知道该怎么办

进一步解释:

索引

控制器

function __construct() {
    parent::__construct();
    $config['upload_path'] = './data/picDir/';
    $config['allowed_types'] = 'gif|jpg|png|jpeg';
    $config['overwrite'] = TRUE;
    $this->load->library('upload', $config);
    $this->upload->initialize($config);
}
function upload_picture() {
    if ($this->check_authorization()) {
        if ($this->ion_auth->get_user_id()) {
            if ($this->upload->do_upload('file')) {
                $data = $this->upload->data();
                echo json_encode(array(
                    "image_name" => $data["file_name"],
                    "success" => true
                ));
            } else {
                echo json_encode(array(
                    "success" => false,
                    "error_message" => $this->upload->display_errors()
                ));
            }
        }
    }
}

当被触发时,请求一直在等待来自php控制器的响应,我认为没有响应。

我相信您的“echo json_encode…”应该在响应中-类似于$this->response(json_encode…)。echo不会返回对ajax请求的响应。请检查您的框架或库以获得正确的响应,并将其共享。

我相信您的“echo json_encode…”应该包含在响应中,类似于$this->response(json_encode…)。echo不会返回对ajax请求的响应。请检查您的框架或库是否有正确的响应,并将其共享。

尝试从ajax请求中删除url中的点,然后重试。从url中我看不到控制器目录有任何问题。当
data:data
未通过时,它可以正常工作。请尝试从ajax请求中删除url中的点,然后重试。从url中我看不到控制器的目录有任何问题。当
data:data
未通过时,它可以正常工作。请注意,这在我的本地计算机上运行良好。我想问题出在这里。
data=new FormData()
请以不同的方式设置数据,然后再试一次,注意这在我的本地机器上工作得很好。我认为问题出在这里
data=newformdata()
请以不同的方式设置数据,然后重试
$('[id="image-value"]').change(function(e) {

var data = new FormData();
var file_data = this.files[0];
data.append('file', file_data);

e.preventDefault();
$.ajax({
    url: './someController/upload_picture/',
    type: 'POST',
    data: data,
    cache: false,
    contentType: false,
    processData: false,
    dataType: 'json',
    success: function(data){
        if (data.success == true) {
            console.log(data.image_name);
        } else {
            var error = data.error_message;
            $(".question-message").fadeIn("fast").html(error);
        }
    },
    error: function(jqXHR, textStatus, errorThrown) {
        console.error("The following error occured: " + textStatus, errorThrown);
    }
});

});
function __construct() {
    parent::__construct();
    $config['upload_path'] = './data/picDir/';
    $config['allowed_types'] = 'gif|jpg|png|jpeg';
    $config['overwrite'] = TRUE;
    $this->load->library('upload', $config);
    $this->upload->initialize($config);
}
function upload_picture() {
    if ($this->check_authorization()) {
        if ($this->ion_auth->get_user_id()) {
            if ($this->upload->do_upload('file')) {
                $data = $this->upload->data();
                echo json_encode(array(
                    "image_name" => $data["file_name"],
                    "success" => true
                ));
            } else {
                echo json_encode(array(
                    "success" => false,
                    "error_message" => $this->upload->display_errors()
                ));
            }
        }
    }
}