Нет «Access-Control-Allow-Origin». Как мы должны решить это? - PullRequest
0 голосов
/ 02 сентября 2018

Я хочу использовать JSONP.

Я столкнулся с этой ошибкой при написании кода, подобного этому:

В запрашиваемом ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Исходный код 'http://localhost' поэтому запрещен доступ.

В чем проблема?

function getAirLine(from , to , date) {

var href = "https://api.flightstats.com/flex/schedules/rest/v1/json/from/"+from+"/to/"+to+"/departing/"+date+"?appId=[myKey1]&appKey=[myKey2]&extendedOptions=languageCode:ko";
$.ajax({
        url : href,
        dataType: 'jsonp',
        success : function(datas) {
            console.log(datas);
            var dataSet = [];

            for (var i = 0; i < datas.scheduledFlights.length; i++) {
                for(var j = 0 ; j < datas.appendix.airlines.length ; j++){
                    if(datas.scheduledFlights[i].carrierFsCode == datas.appendix.airlines[j].fs){
                        airlines = datas.appendix.airlines[j].name;
                    }
                } 
                var dataArr = [];
                dataArr.push(datas.scheduledFlights[i].departureAirportFsCode);
                dataArr.push(datas.scheduledFlights[i].departureTime.substring(11,16))
                dataArr.push(datas.scheduledFlights[i].arrivalAirportFsCode)
                dataArr.push(datas.scheduledFlights[i].arrivalTime.substring(11,16))
                dataArr.push(datas.scheduledFlights[i].carrierFsCode + datas.scheduledFlights[i].flightNumber)
                dataArr.push(airlines);
                dataSet.push(dataArr);
            }
            console.log(dataSet);
            $('#realTime').DataTable({
                destroy: true,
                data: dataSet,
                columns: [
                    { title: "From" },
                    { title: "Depart.Time" },
                    { title: "To" },
                    { title: "Arrial.Time" },
                    { title: "AirLine" },
                    { title: "AirCode" }
                ]
            });                 
        },
        error: function(datas) {
              console.log('실패 - ', datas);
            }
    });
}

Как мы должны решить это?

1 Ответ

0 голосов
/ 02 сентября 2018

Вы должны включить CORS в заголовке на некоторых языках, таких как PHP, JAVA, C # и т. Д. пример в php

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept');
header('Access-Control-Allow-Methods: GET, POST, PUT');

или только с JS. ИДК, но это работает: D Это метод с https://cors -anywhere.herokuapp.com / Пример

const CORS = "https://cors-anywhere.herokuapp.com/";
const endpoint = CORS + "https://api.deezer.com/playlist/3314523926/tracks";

У меня есть пример в коде ручки https://codepen.io/rogergcc/pen/wyggGX

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