Надеюсь, этот заголовок не является слишком загадочным.Происходит следующее: у меня есть сценарий jQuery AJAX, который я пытаюсь использовать для доступа к API на удаленном сервере, который возвращает ответ JSON.Однако API возвращает JSON как MIME-тип «text / html» (в заголовке ответа) вместо «application / json».Казалось бы, очевидно, что мне просто нужно изменить тип возвращаемого содержимого с текста на JSON, чтобы вызов AJAX правильно интерпретировал данные.
К сожалению, это не так.Я пробовал это множеством разных способов, но все они терпят неудачу.Самое близкое, что я получил, чтобы заставить этот вызов API работать, когда отладчик говорит мне: «Ресурс интерпретируется как Script, но передается с MIME-типом text / html».И AJAX вызывает ошибки с моим отладочным сообщением, которое выгружает объект jqXHR в формате JSON, который говорит мне: {"readyState":4,"status":200,"statusText":"parsererror"}
Вот пример моего кода (хотя я изменил код многими различными способами,в моих попытках заставить его работать, но эта версия кажется наиболее близкой к правильной):
$.ajax({
type: 'GET',
url: 'http://username:api-key@www.kanbanpad.com/api/v1/projects.json',
contentType: 'application/json',
dataType: 'jsonp',
converters: {
'jsonp': jQuery.parseJSON,
},
success: function(data) {
alert(data);
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(JSON.stringify(jqXHR));
console.log(textStatus+': '+errorThrown);
}
});
Если кто-то может понять, что мне нужно сделать по-другому, чтобы сделать эту работу, я буду чрезвычайноблагодарен.
Также стоит отметить, что если вы скопируете / вставите URL-адрес API в адресную строку браузера и нажмете кнопку go, это даст правильный ответ JSON с соответствующим заголовком ответа («application /JSON ")