Как получить несколько API с топором ios? - PullRequest
0 голосов
/ 27 февраля 2020

Я хочу получить несколько API на одной странице. С помощью следующего кода все возвращаемые данные из «apione» работают, но я не уверен, почему я ничего не получаю от «apitwo».

async created() {

    let apione = "https://k67r3w45c4.execute-api.ap-southeast-1.amazonaws.com/TwitterTrends";
    let apitwo = "http://ec2-54-179-187-25.ap-southeast-1.compute.amazonaws.com/Test/?param1=HelloHanbinIsFREE"


    try {
      const res = await axios.get(apione);

      this.toptrends1 = res.data[0].Trends;
      this.toptrends2 = res.data[1].Trends;
      this.toptrends3 = res.data[2].Trends;
      this.toptrends4 = res.data[3].Trends;
      this.toptrends5 = res.data[4].Trends;

      this.tweet1 = res.data[0].TweetVolume;
      this.tweet2 = res.data[1].TweetVolume;
      this.tweet3 = res.data[2].TweetVolume;
      this.tweet4 = res.data[3].TweetVolume;
      this.tweet5 = res.data[4].TweetVolume;

      var thetime = res.data[0].retrievalDate
      thetime = thetime.split("T")[0];
      this.time = thetime

      // ----------------------------------API 2 -------------------------------------

      const res2 = await axios.get(apitwo);
      this.trend1fre = res2.data[0].Frequency;


    } catch (e) {
      console.errpr(e);
    }
  },

Ответы [ 3 ]

1 голос
/ 27 февраля 2020

Откройте Инструменты разработчика в вашем браузере. Посмотрите на Консоль. Прочитайте сообщения об ошибках .

Когда я проверяю ваш код, я получаю:

Смешанный контент: страница в 'https://jsbin.com/?html,js,console' была загружена через HTTPS , но запросил небезопасную конечную точку XMLHttpRequest 'http://ec2-54-179-187-25.ap-southeast-1.compute.amazonaws.com/Test/?param1=HelloHanbinIsFREE'. Этот запрос был заблокирован; контент должен обслуживаться по HTTPS.

Один из ваших API использует HTTP, другой - HTTPS. Они оба должны использовать ту же схему, что и вы, чтобы загрузить документ HTML (и почти наверняка это будет HTTPS).

0 голосов
/ 27 февраля 2020

проблема с ответом от apitwo заключается просто в отсутствии необходимого заголовка Access-Control-Allow-Origin, вы все равно можете заставить его работать - сделав запрос через прокси-сервер CORS. замените ниже

const res2 = await axios.get(apitwo);

на

const res2 = await axios.get('https://cors-anywhere.herokuapp.com/'+apitwo);

для дальнейшего исследования проблемы go на этот ответ о потоке стека

0 голосов
/ 27 февраля 2020

попробуй axios.all([apione, apitwo])

...