Подтвердить что ты не робот

AngularJS: заголовок "Access-Control-Allow-Origin" отсутствует на запрошенном ресурсе

Я пишу свой webApp, и я использую AngularJS. В этом приложении я создал файл с именем script.js, и я сообщаю этот код:

var modulo = angular.module('progetto', ['ngRoute']);

    // configure our routes
    modulo.config(function ($routeProvider, $httpProvider) {
        $routeProvider

            // route for the home page
            .when('/', {
                templateUrl: 'listaFilm.html',
                controller: 'listaController'
            })

            // route for the description page
            .when('/:phoneName', {
                templateUrl: 'description.html',
                controller: 'descriptionController'
            });


            $httpProvider.defaults.headers.common['Access-Control-Allow-Origin'] = '*';

    });


    modulo.controller('listaController', function ($scope, $http) {
        $http.get('https://api.getevents.co/event?&lat=41.904196&lng=12.465974').success(function (data) {
            $scope.names = data;
            }).
            error(function (data, status) {
                $scope.names = "Request failed";
            });
    });

С помощью этого кода я вызываю API по правилам RESTful. Когда я запускаю код, у меня возникает эта проблема:

XMLHttpRequest не может загрузить https://api.getevents.co Нет Заголовок заголовка Access-Control-Allow-Origin присутствует в запрошенном ресурс. Origin 'http://localhost:8383' поэтому не допускается доступ.

Чтение в Интернете Я понял, что у меня проблема, называемая CORS... Я попробовал несколько предложенных решений, но я не разрешил проблему.
Как я могу исправить проблему?
Какой код я должен добавить для его исправления?

4b9b3361

Ответ 1

Это проблема с сервером. Вам не нужно добавлять заголовки в angular для cors. Вам нужно добавить заголовок на стороне сервера:

Access-Control-Allow-Headers: Content-Type
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Allow-Origin: *

Первые два ответа здесь: Как включить CORS в AngularJs

Ответ 2

CORS - это совместное использование ресурсов Cross Origin, вы получаете эту ошибку, если пытаетесь получить доступ из одного домена в другой.

Попробуйте использовать JSONP. В вашем случае JSONP должен работать нормально, потому что он использует только метод GET.

Попробуйте что-то вроде этого:

var url = "https://api.getevents.co/event?&lat=41.904196&lng=12.465974";
$http({
    method: 'JSONP',
    url: url
}).
success(function(status) {
    //your code when success
}).
error(function(status) {
    //your code when fails
});