Я пытаюсь получить последние комментарии на моем сайте/форуме через Disqus API. Мой запрос работает, когда я пробую его в адресной строке, но получаю 400 ошибок, когда пытаюсь сделать вызовы AJAX с помощью JQuery.
Мой запрос JSON:
$.ajax({
type: 'GET',
url: "https://disqus.com/api/3.0/forums/listPosts.json",
data: { api_key: 'my_public_key', forum : 'my_forum_name'},
cache: false,
dataType: 'json',
success: function (result) {
console.log("SUCCESS");
}
});
Когда я пытаюсь выполнить вышеуказанный запрос JSON, я получаю сообщение об ошибке в консоли, указывающее, что заголовок Access-Control-Allow-Origin не установлен в ответе сервера. Для меня это говорит о том, что Disqus не настроен для поддержки запросов CORS, но в документации указано, что Disqus поддерживает JSON в качестве типа запроса.
Мой запрос JSONP:
$.ajax({
type: 'GET',
url: "https://disqus.com/api/3.0/forums/listPosts.jsonp",
data: { api_key: 'my_public_key', forum : 'my_forum_name'},
cache: false,
dataType: 'jsonp',
success: function (result) {
console.log("SUCCESS");
}
});
Когда я пытаюсь выполнить вышеуказанный запрос JSONP по этому руководство, предоставленное Disqus, я все еще получаю 400 Bad Request в качестве ответа.
Когда я делаю оба запроса с curl, используя один и тот же сервер разработки, я вижу правильный ответ в формате JSON или JSONP в теле ответа, хотя в заголовке указана ошибка 400. (Однако на вкладке сети Chrome указано, что «для этого запроса нет доступных данных ответа», когда я выделяю запрос там — возможно, мне нужно быть на канале разработчиков Chrome, чтобы увидеть ответ.)
Я пробовал оба запроса на нескольких разных доменах и каждый раз убеждался, что домены, с которыми я тестирую запросы, перечислены в Disqus как доверенные домены, хотя я не уверен, что это имеет значение.
Я знаю, что прокси-сервер, вероятно, решит проблему JSON, но, поскольку Disqus заявляет, что они поддерживают запросы JSON и JSONP, я бы предпочел не делать этого. Что еще я могу попробовать?