Estoy usando este script para cargar mis archivos de imagen: http://jsfiddle.net/eHmSr/
$('.uploader input:file').on('change', function() {
$this = $(this);
$('.alert').remove();
$.each($this[0].files, function(key, file) {
$('.files').append('<li>' + file.name + '</li>');
data = new FormData();
data.append(file.name, file);
$.ajax({
url: $('.uploader').attr('action'),
type: 'POST',
dataType: 'json',
data: data
});
});
});
Pero cuando hago clic en el botón de carga, la consola de JavaScript devuelve este error:
Uncaught TypeError: Illegal invocation
¿Me puedes ayudar?
dataType: 'json',
???processData: false
, como sugirió Blender , y tambiéncontentType: false
, como sugirió Caio Tarifa . Nada menos que los tres no funcionó. Vea [esta respuesta] ( stackoverflow.com/a/3Respuestas:
jQuery procesa el
data
atributo y convierte los valores en cadenas.Agregar
processData: false
a su objeto de opciones corrige el error, pero no estoy seguro de si soluciona el problema.Demostración: http://jsfiddle.net/eHmSr/1/
fuente
contentType: false
. ¡Gracias de nuevo!c
, no con dos.Tuve el mismo problema que solucioné con el uso de dos opciones
contentType: false processData: false
En realidad, agregué estos dos comandos a mi función $ .ajax ({})
fuente
Añadiendo
processData: false
a las$.ajax
opciones van a resolver ese problema.fuente
Mi experiencia:
var text = $('#myInputField'); var myObj = {title: 'Some title', content: text}; $.post(myUrl, myObj, callback);
El problema es que olvidé agregar .val () al final de $ ('# myInputField'); esta acción me hace perder el tiempo tratando de averiguar qué estaba mal, lo que provocó un Error de invocación ilegal , ya que $ ('# myInputField') estaba en un archivo diferente al que el sistema señaló un código incorrecto. Espero que esta respuesta ayude a los compañeros en el mismo error para evitar perder tiempo.
fuente
En mi caso, hubo un error en la lista de los parámetros que no estaba bien formada. Así que asegúrese de que los parámetros estén bien formados. Por ejemplo, formato correcto de parámetros
data: {'reporter': reporter,'partner': partner,'product': product}
fuente