FormData参数没有通过AJAX传递给服务器(使用XMLHttpRequest传递正常)

时间:2016-08-30 12:34:44

标签: javascript jquery ajax

我正在尝试使用ajax将文件(用于上传到服务器)和其他一些参数传递给服务器(perl cgi),但是服务器没有获取参数。

ajax:

$(function() {
    $('#upload_file').click(function (){
        var file = document.getElementById('file').files[0];

        var formdata = new FormData();
        formdata.append("Content-Type", "multipart/form-data");
        formdata.append("sid", "1234");
        formdata.append("file", file);
        formdata.append("file_path_on_server", "/path/");
        formdata.append("local_file_name", "sidebar_custom.css");
        formdata.append("add_timestamp", "1"); // add timestamp to file name

        $.ajax({
            url : 'upload_file.cgi',
            type : 'POST',
            data : formdata,
            processData: false,  // tell jQuery not to process the data
            contentType: false,  // tell jQuery not to set contentType
            success : function(data) {
                console.log(data);
                alert(data);
            }
        });

        // var xhr = new XMLHttpRequest();
        // xhr.open("POST","upload_file.cgi",true);
        // if (xhr.status != 200) {
        //  alert("Error '" + xhr.status + "' occurred when trying to upload your file.");
        // }            
        // xhr.send(formdata);

    });
});

当我使用XMLHttpRequest代替(注释掉)时,所有参数都会根据请求传递给服务器脚本。 例如 我尝试打印参数“sid”,但ajax和“1234”为XMLHttpRequest时为空。

我不想使用XMLHttpRequest,因为我无法接收来自服务器的响应(例如某些文件名字符串)。

我做错了吗?

0 个答案:

没有答案