API Twitter не работает в AJAX Success Call - PullRequest
0 голосов
/ 18 апреля 2019

Используя Django, я создаю функцию поиска, которая впоследствии будет отображать твиты.

На основе пользовательского ввода AJAX публикует представления, которые возвращают список идентификаторов, которые следует использовать для получения твитов сAPI Twitter.Когда в функции успеха AJAX вызывается twttr.widgets.createTweet(), я получаю:

Отказался от выполнения скрипта из https://cdn.syndication.twimg.com/tweets.json?callback=__twttr.callbacks.cb0&ids=%2C%2Cundefined%2Cundefined%2Cundefined%2Cundefined%2Cundefined%2Cundefined%2Cundefined%2Cundefined%2Cundefined%2Cundefined%2Cundefined%2Cundefined%2Cundefined%2Cundefined%2Cundefined%2Cundefined%2Cundefined%2Cundefined%2Cundefined%2Cundefined%2Cundefined%2Cundefined%2Cundefined%2Cundefined%2Cundefined%2Cundefined%2Cundefined%2Cundefined&lang=en&suppress_response_codes=true&theme=light&tz=GMT-0400', потому что его тип MIME ('') не является исполняемым, и строгий MIMEпроверка типов включена. "

Вызов API работает отлично, когда он вызывается onLoad. Я подтвердил, что функция успеха срабатывает. Я пытался изменить тип данных AJAX, который неработа.

Ajax-вызов:

 $.ajax({
        url: '/',
        type: 'POST',
        datatype : "json",
        data: {
          'search': x,
        },
        success: function(data) {
           a = data
           genTweets(a)

      });

genTweets (который генерирует элементы для заполнения твитами):

function genTweets(a){
 if (a.length < 30){
 for (i = 0; i < a.length; i++){
          var newDiv = document.createElement("div"); 
          x = String(a[i])
          document.body.appendChild(newDiv)
          newDiv.id = "tweet" + i
          newDiv.setAttribute("tweetID", x)
          newDiv.setAttribute("class", "offset-3 col-8")
          genTweet(newDiv.id)
           }
           }
}

genTweet:

 genTweet = function(tweet){
    var tweet = document.getElementById(tweet);
    var id = tweet.getAttribute("tweetID");
    $('.dropdown-toggle').dropdown('toggle');
     twttr.widgets.createTweet(
      id, tweet)
    }

1 Ответ

0 голосов
/ 19 апреля 2019

Я нашел проблему. Проблема состояла в запуске twttr.widgets.createTweet () с данными из вызова AJAX, поскольку ответом AJAX был JSON. Это привело к тому, что идентификаторы не были определены, и API это не понравилось. Использование data.key в качестве параметра исправляет это. До сих пор не уверены, почему эта ошибка возникает только при вызове AJAX, но теперь она работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...