2011-04-20 9 views
5

que tienen una URL desde la que yo puede conseguir una cadenajQuery 1.5.2 pantallas [XMLDocument objeto] para las respuestas vacías

Si la cadena de respuesta contiene algo, todo va bien, pero (Dios no lo quiera!) Si el resultado sería una cadena vacía como "" jQuery 1.5.2 mostrará como [XMLDocument objeto]

seguir los códigos PLZ:

$.post('/Applicant/RequestedJob/IsThereActivePeriod',{}, 
    function(data){  
     if(data == '') 
     { 
       //do something here! 
     } 
     else 
     { 
      console.log(data.toString()); 
      // [object XMLDocument] will be printed in console. 
     }   
}); 

tal vez debería mencionar que solía funcionar perfectamente en jQuery 1.4.4 alguna idea?

Saludos :)

+0

es 'openDialog' jquery ui dialog ?? –

+0

¡sí! pero el punto es otro! ;-) es el valor del parámetro de datos –

+0

¿Quiere decir que obtiene '[objeto XMLDocument]' en el cuadro de diálogo? –

Respuesta

9

debe establecer el tipo de datos esperado de la respuesta en la llamada ajax, así:

$.post('/Applicant/RequestedJob/IsThereActivePeriod',{}, 
    function(data){  
     if(data == '') 
      openDialog('/Applicant/RequestedJob/AddRequestedJobWindow','pnlRequestedJob','Request Window'); 
     else 
     { 
      msgbox.show(data.toString(),'Error', msgBoxButtons.okOnly); 
      console.log(data.toString()); 
     } 
    }, 
    'html' 
); 

Sin esto, jQuery trata de inferir el tipo de respuesta, según to this:

Valor predeterminado: Intelligent Guess (xml, json, script o html).

Sin contenido devuelto, aparentemente adivina XML. Al pasarlo como 'html' como dataType, fuerza a jQuery a interpretar la respuesta como HTML y almacena el resultado en texto sin formato.

Según algunos de los comentarios, un encabezado de tipo de contenido apropiado debería permitir a jQuery inferir que su cadena vacía es HTML, logrando el mismo resultado sin establecer explícitamente el tipo de datos esperado en la llamada ajax.

La razón por la que obtienes [object XMLDocument] es porque data es un objeto de documento XML y se está llamando a toString().

+0

gracias amigo, camino a seguir :) –

+0

Excelente explicación Paul! De hecho, pensé que nunca encontraría la respuesta a esta, porque en mi caso solo estaba ocurriendo en el navegador Firefox (otros navegadores no lo renderizaron aunque no especifiqué el tipo de datos). Tengo que amar StackOverflow !!! – Marko

Cuestiones relacionadas