Tôi mới sử dụng JQuery và Tôi muốn sử dụng JQuery Ajax để tải một số tệp lên máy chủ, Chỉ trong phương thức PUT. khi tôi gửi một số tệp nhị phân (chẳng hạn như gif hoặc jpeg) đến máy chủ của tôi, tải lên thành công, nhưng nội dung của dữ liệu nhị phân đã bị thay đổi (nó luôn lớn hơn kích thước tệp gốc). Tôi cố gắng thay đổi kiểu nội dung hoặc loại kết quả tệp, nhưng vẫn không hoạt động. Bất cứ ai cũng biết cách sửa lỗi này?Cách gửi dữ liệu nhị phân qua phương pháp JQuery Ajax PUT
PS: Tôi không thể mã hóa nội dung của tệp nhị phân sang dạng khác, vì tôi không thể chạm vào mã của máy chủ.
var reader = new FileReader();
reader.onloadend = (function(Thefile) {
$.ajax({
url: url,
processData:false,
//contentType:"application/octet-stream; charset=UTF-8",
data: file.result,
type: 'PUT',
success : function(){console.log("OK!");},
error : function(){console.log("Not OK!");}
});
})(file);
reader.readAsBinaryString(file);
Tôi đã gặp sự cố tương tự. Suy đoán đầu tiên của tôi là điều này liên quan đến cách hàm 'ajax' xử lý dữ liệu trước khi gửi yêu cầu. –
Bất kể máy móc AJAX của jQuery, chú ý bạn nên gán một hàm cho reader.onloadend - không gọi hàm đó cho chính bạn! – Tom