jQuery Ajax, странный ответ от сервера .NET - PullRequest
1 голос
/ 25 ноября 2011

Я пытаюсь заменить скрипт ajaxpro на jQuery, но ответ, который я получаю от сервера при использовании ajaxpro или jquery, - это что-то, чего я не узнаю.

Это вызов 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);
    }
})

И это странный ответ:

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

Я ожидаю взамен HTML или XML, но это массив? Я не понимаю уходящего и странного конца. Я попытался установить dataType в json, но это не json, не html, может быть, javascript? Тип содержимого ответа сервера, похоже, установлен на текст.

Итак, мой вопрос: как мне использовать этот ответ как HTML или преобразовать его в HTML?

1 Ответ

1 голос
/ 25 ноября 2011

Не указывая dataType, jQuery делает предположение о формате данных, которые он получает от вызова AJAX. 90% времени это правильно. В остальное время нужна небольшая помощь.

Попробуйте это:

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

Больше информации здесь

...