Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.04.2017, 17:19
Новичок на форуме
Отправить личное сообщение для magmaister Посмотреть профиль Найти все сообщения от magmaister
 
Регистрация: 22.11.2016
Сообщений: 5

Не работают http запросы на GitHub pages
Привет ребзя! Захостил свою приложуху на гитхаб пейджес, в приложухе есть запросы на api по прогнозу погоды! Локально все нормально работет через http протокол любыми методами, $.ajax, getJSON и через нативный XMLHTTPRequest . Заливая на гитхаб юзал протокол https , перепробовал все перечисленные методы - не работет, ошибка 0, я так понял не может достучатся до сервака. Код запроса через аджакс и через нативный запрос прилагаю. Кто что знает по этому поводу?

Запрос через getJSON
export function apiRequest(settings) {
    let url;
    //if user accept share his coordinates - use request by coordinates
    //if denided, suggest to user search by city name
    if(typeof settings === "string"){
        url = `https://api.openweathermap.org/data/2.5/forecast?q=${settings}`
    }else{
        url = `https://api.openweathermap.org/data/2.5/forecast?lat=${settings.lat}&lon=${settings.lon}` ;
    }
    return new Promise((resolve, reject) => {
        $.getJSON(url, function (data) {
            resolve(data);
        })
            .fail(function (data) {
                if(data.status == 404){
                    alert("404 Not found your city")
                }else{
                    alert(`Cant access to server. Request status: ${data.status}.`)
                }
                reject();
            });
    })
}


Запрос нативным способом

export function apiRequest(settings) {
    let url;
    //if user accept share his coordinates - use request by coordinates
    //if denided, suggest to user search by city name
    if(typeof settings === "string"){
        url = `https://api.openweathermap.org/data/2.5/forecast?q=${settings}`
    }else{
        url = `https://api.openweathermap.org/data/2.5/forecast?lat=${settings.lat}&lon=${settings.lon}` ;
    }
    return new Promise((resolve, reject) => {

        let xhr = new XMLHttpRequest();

        xhr.open("GET", url, false);
        xhr.send();

        if( xhr.status != 200 ){
            alert(`Error! Cant get response from server! ${xhr.status} - ${xhr.statusText}`);
            reject();
        }else{
            let data = JSON.parse(xhr.responseText);
            resolve(data);
        }
    })
}
Ответить с цитированием
  #2 (permalink)  
Старый 10.04.2017, 21:49
Профессор
Отправить личное сообщение для Царь Леонид Посмотреть профиль Найти все сообщения от Царь Леонид
 
Регистрация: 22.08.2013
Сообщений: 217

Там вроде параметр appid обязателен. И такой еще вопрос, вот это: data/2.5/forecast откуда(я не увидел)?

Последний раз редактировалось Царь Леонид, 10.04.2017 в 21:52.
Ответить с цитированием
  #3 (permalink)  
Старый 11.04.2017, 10:29
Новичок на форуме
Отправить личное сообщение для magmaister Посмотреть профиль Найти все сообщения от magmaister
 
Регистрация: 22.11.2016
Сообщений: 5

Appid есть, я его удалил просто что-бы его не юзали ради теста, там бан могут дать за много запросов на один и тот же город. А data/2.5/forecast это они дают такой урл,там 3 варианта прогноза, на 1 день,5 и на 16, соответственно разные урлы, мои данные идут уже после data/2.5/forecast?
Ответить с цитированием
  #4 (permalink)  
Старый 11.04.2017, 13:57
Новичок на форуме
Отправить личное сообщение для magmaister Посмотреть профиль Найти все сообщения от magmaister
 
Регистрация: 22.11.2016
Сообщений: 5

В общем проблема в api? Нужно регистрировать ключ по тарифному плану выше standart и привязывать его к домену?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
XMLHttpRequest: кросс-доменные запросы не работают lekba AJAX и COMET 0 20.11.2015 09:36
почему селект вдруг перестал работать в эксплорере и гуглхроме? Краса (X)HTML/CSS 44 04.05.2013 19:18