Проблема с преобразованием markdown текста в HTML
Пытаюсь отправить текст на API GitHub для получения HTML версии markdown документа, но постоянно получаю ошибку.
Вот мой текущий код:
$.post({
method: "POST",
responseType: "json",
cache: false,
endpoint: "https://api.github.com/markdown/raw",
payload: {
"content": $('#markdown_input').text()
},
onSuccess: function(response){
console.log("Запрос выполнен!");
console.log(response);
},
onError: function(xhr, status, errorMsg){
console.log(xhr, status, errorMsg);
}
});
В результате всегда срабатывает функция onError
. Не могу понять в чем дело. Может кто-то сталкивался с подобной проблемой при работе с GitHub API? Буду благодарен за любые советы по исправлению этой ошибки.
А ты проверял в консоли разработчика что именно возвращает $(‘#markdown_input’).text()? Может там пустая строка или что-то не то. И еще - попробуй сначала простой GET запрос к GitHub API сделать, чтобы убедиться что вообще соединение работает. Какую именно ошибку показывает в xhr?
Смотри, тут еще одна штука - ты используешь endpoint
вместо url
в параметрах. jQuery такой параметр не понимает, поэтому запрос вообще никуда не уходит. Попробуй замнить на обычный url: "https://api.github.com/markdown/raw"
. И да, согласен с предыдущим комментом про Content-Type - GitHub API реально ждет plain text, а не JSON. У меня похожая проблема была пару месяцев назад, решилось именно заменой параметров и правильным форматом данных.
У тебя проблема с самим запросом - $.post
не принимает такие параметры. Попробуй через обычный $.ajax
или fetch
. Плюс GitHub API для markdown ожидает raw текст в теле запроса, а не JSON объект. Должно быть что-то типа fetch('https://api.github.com/markdown/raw', {method: 'POST', headers: {'Content-Type': 'text/plain'}, body: $('#markdown_input').text()})
. Еще учти что GitHub может требовать токен авторизации для некоторых запросов.