JS не извлекает данные из Forismatic API

#javascript #jquery #html

#javascript #jquery #HTML

Вопрос:

РЕДАКТИРОВАТЬ: я сам нашел решение, но я хотел бы получить ответ, почему это сработало. Я удалил https: // из URL-адреса, и это устранило проблему. Не уверен, почему это может быть проблемой. Может быть, этот https более безопасен?

Вот некоторые из моих соответствующих HTML и Js-кодов, они написаны на codepen, поэтому заголовки и библиотеки не находятся непосредственно в коде. Вот ссылка на страницу codepen:https://codepen.io/slicknick/pen/vXVYpg

Это проект по созданию генератора случайных цитат с использованием Forismatic API. Я новичок в API и Js. Кажется, я не могу заставить цитаты отображаться на моей странице и хотел бы получить отзывы о том, почему это может происходить.

HTML

 <div class="container-fluid">
<div class="row">
    <div class="col-xs-6 col-centered">
        <blockquote>
            <p id="quote-text"></p>
            <footer>
                <a id="author" target="_blank"></a>
            </footer>
        </blockqoute>
        <button type="button" id="getQuote" class="btn btn-secondary">New quote</button>
        <a href="http://twitter.com/home?status=#Quote" target="_blank"><i class="fa fa-twitter-square fa-3x" id="twitter-share" aria-hidden="true"></i></a>
    </div>
</div>
  

 $(function() {
var author = $('#author');
var text = $('#quote-text');
getQuote(author, text);

$('#getQuote').click(function(event) {
    event.preventDefault();
    getQuote(author, text);
    $('#twitter-share').removeClass("disabled");
    $('#twitter-share').html("Share with Twitter!");
})
});

var tweetText = "";
$('#twitter-share').click(function() {
if (tweetText.length > 140) {
    tweetText = "";
    $(this).addClass("disabled");
    $(this).html("140 chars exceeded!");
} else {
    $(this).attr("href", "https://twitter.com/intent/tweet?text="          tweetText);
}

})

function getQuote(author, text) {

var forismaticURL = "http://api.forismatic.com/api/1.0/? method=getQuoteamp;lang=enamp;format=jsonpamp;jsonp=?"

$.getJSON(forismaticURL, function(data) {

    text.html(data.quoteText);
    if (data.quoteAuthor) {
        author.html(data.quoteAuthor);
        author.attr("href", data.quoteLink);
    } else {
        author.removeAttr("href");
        author.html("<strong>Anonymous</strong>");
    }
    tweetText = data.quoteText   "By -"   data.quoteAuthor;
});
}
  

Ответ №1:

Цитирую документацию Forismatic API

Вызовы методов API реализованы в форме HTTP-запросов к URLhttp://api.forismatic.com/api/1.0 /.

Вот почему вы получаете ошибку 404 на HTTPS.

Надеюсь, это поможет.

Комментарии:

1. Спасибо, это так. Я уверен, что буду лучше разбираться в вещах, чем глубже я войду в API.