2011-11-25 3 views
1

J'essaie de remplacer un script ajaxpro par jQuery, mais la réponse que je reçois du serveur lors de l'utilisation d'ajaxpro ou de jquery est quelque chose que je ne reconnais pas.jQuery Ajax, réponse bizarre du serveur .NET

C'est l'appel jquery:

$.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: "/ajaxpro/CMS.ItemRetrieve.ashx", 
    data: jsonData, 
    beforeSend: function(xhr) { 
     xhr.setRequestHeader("X-AjaxPro-Method", "ItemRetrieve"); 
     xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); 
    }, 
    success: function(responseText) { 
     console.log(responseText); 
    } 
}) 

Et ceci est la réponse bizarre:

[0,"\r\n\r\n<div id=\"content\">test</div>\r\n "];/* 

J'attends HTML ou XML en retour, mais cela semble être un tableau? Je ne comprends pas la fin d'échappement et wierd. J'ai essayé de mettre dataType à json, mais ce n'est pas json, pas html, peut-être javascript? Le type de contenu de la réponse du serveur semble être défini sur du texte. Donc, ma question est, comment puis-je utiliser cette réponse en HTML, ou le convertir en HTML?

Répondre

1

Sans spécifier dataType, jQuery fait une meilleure estimation du format des données qu'il reçoit à partir d'un appel AJAX. 90% du temps c'est vrai. Les autres fois, il a besoin d'un peu d'aide.

Essayez ceci:

$.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: "/ajaxpro/CMS.ItemRetrieve.ashx", 
    data: jsonData, 
    dataType: "html", // Explicitly set the return data type 
    ... 
}); 

More information here

+0

Merci pour la réponse, ce fut la première chose que j'ai essayé. Et je reçois toujours la même réponse wierd et le même type de contenu dans l'en-tête de réponse. "Type de contenu \t text/plain; charset = utf-8". –