Короткий вопрос: есть ли способ сделать запрос jsonp на сервер, захватить запрос, но не разобрать его как javascript? Я использую dataType: «jsonp text» в jQuery 1.5, но он не работает.отправить запрос как jsonp, интерпретировать ответ как текст, используя jQuery 1.5
Я пытаюсь получить доступ к междоменному URL-адресу через AJAX с помощью jsonp. Проблема в том, что другой домен (список каталогов в моем университете) очень старый, и я сомневаюсь, что сервер поддерживает jsonp.
- В Firefox я получаю ошибку «несоответствие имени тега XML (ожидаемый META)». В chrome я получаю сообщение «Uncaught SyntaxError Unexpected token <», указывающее на файл, соответствующий моему запросу AJAX. Строкой ошибки из обратного вызова ошибки является «parsererror».
- Я не могу выполнить обычный вызов AJAX - когда я изменяю тип данных только на «текст» или удаляю все вместе, другой домен жалуется, что пользователь не аутентифицирован и перенаправляется на страницу входа в систему, даже если я «Вы уже вошли в браузер. Когда dataType - jsonp, этого не происходит.
- Я знаю, что сервер должен поддерживать JSONP, и я не думаю, что это так, но когда я меняю dataType на JSONP, я вижу, что ресурсы страницы ответов отображаются как в Chrome, так и в Firefox - поэтому сервер фактически отправляет ответ на браузер (статическая HTML-страница + некоторый java-скрипт), который содержит данные, которые я хочу получить.
- Проблема в том, что jQuery пытается проанализировать ответ как javascript и не удается (потому что это не javascript). Таким образом, данные попадают в браузер - мне просто нужно получить к нему доступ!
- Использование dataType: «jsonp text», который должен указывать отправку запроса jsonp и интерпретировать ответ, поскольку текст не имеет значения - все еще ошибка синтаксического анализа.
Что я хочу: способ получить ответ от запроса jsonp как обычный текст. Или, если я могу получить доступ к необработанному ответу из неудавшегося запроса jsonp - это тоже сработает.
Заранее благодарен!
Код:
ajax_url = 'https://somesite/?searchTerm='+query+'&searchType=lastname';
var jqxhr = $.ajax({type:"GET",
url: ajax_url,
dataType:"jsonp text",
callback: "whatever",
success:function(responseData) {
$('div#content').text(responseData.slice(0, 100));
dbg(responseData.slice(0,100));
}})
.success(function() { alert("success"); })
.error(function(obj, errStr) { alert("error"); dbg("error: " + errStr + "test: " + test.responseText + this.responseTxt);})
.complete(function() { alert("complete"); });
Вы пытались помещать данные, которые вы получили в переменной js, а затем вставляете их в теги js. Кажется, имеет смысл, если он пытается разобрать его как js. –