Soy nuevo en JQuery y Quiero usar JQuery Ajax para cargar algunos archivos en el servidor, solo en el método PUT. cuando envío algún archivo binario (como gif o jpeg) a mi servidor, la carga se realiza correctamente, pero se modificó el contenido de los datos binarios (siempre es más grande que el tamaño del archivo original). Intento cambiar el tipo de contenido o el tipo de resultado del archivo, pero todavía no funciona. ¿Alguien sabe cómo solucionar esto?Cómo enviar datos binarios a través del método JQuery Ajax PUT
PD: No puedo codificar el contenido del archivo binario en otra forma, porque no puedo tocar el código del servidor.
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);
He encontrado un problema similar. Mi primera suposición es que esto tiene que ver con la forma en que la función 'ajax' procesa los datos antes de enviar la solicitud. –
Independientemente de la maquinaria jQuery AJAX, observe que debe asignar una función a reader.onloadend, ¡no invoque esa función usted mismo! – Tom