Установка dataType
на text
запрещает jQuery обрабатывать запрос как JSONP.jQuery выполняет некоторые действия в фоновом режиме для запросов такого типа (подставляя callback=?
в URL для имени функции и определяя функцию success
как глобальную функцию).
Почему вы хотите, чтобы ответ был необработанным текстом?Невозможно получить ответ, который является просто JSON из запроса JSONP, поскольку природа JSONP требует, чтобы ответ был заключен в вызов функции.
Установка dataType
на jsonp
работает, но, конечно, объект возвращается.
$.ajax({
url:"http://api.douban.com/book/subject/isbn/9787802057388?alt=xd&callback=?",
dataType:'jsonp',
success:function(data){
alert(data);
} //endof success
}); //endof .ajax
Если вы хотите получить строку, вы можете дважды json-кодировать часть ответа на сервере, чтобы он был полученв виде строки, или используйте JSON-кодировщик JavaScript на клиенте и снова его кодируйте, но оба они не кажутся идеальными решениями.Объект гораздо удобнее и полезнее.