Показать сообщение отдельно
  #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);
        }
    })
}
Ответить с цитированием