我正在尝试使用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
,因为我无法接收来自服务器的响应(例如某些文件名字符串)。
我做错了吗?