programing

AngularJS: 요청된 리소스에 "Access-Control-Allow-Origin" 헤더가 없습니다.

bestcode 2023. 2. 14. 20:24
반응형

AngularJS: 요청된 리소스에 "Access-Control-Allow-Origin" 헤더가 없습니다.

웹앱을 작성하고 있으며 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";
            });
    });

이 코드를 사용하여 RESTful 원칙에 따라 API를 호출합니다.코드를 실행하면 다음과 같은 문제가 발생합니다.

XMLHttpRequest가 https://api.getevents.co을 로드할 수 없습니다. 요청된 리소스에 'Access-Control-Allow-Origin' 헤더가 없습니다.따라서 오리진 'http://localhost:8383'은 액세스가 허용되지 않습니다.

웹에서 읽다 보니 CORS라는 문제가 있더라...저는 몇 가지 해결책을 제안했지만 문제를 해결하지 못했습니다.
어떻게 하면 문제를 해결할 수 있을까요?
수정하려면 어떤 코드를 추가해야 합니까?

이것은 서버측의 문제입니다.코르스를 위해 각진 헤더를 추가할 필요는 없습니다.서버 측에 헤더를 추가해야 합니다.

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

첫 번째 두 가지 답변은 다음과 같습니다.AngularJs에서 CORS를 활성화하는 방법

CORS는 Cross Origin Resource Sharing입니다.도메인간에 액세스 하려고 하면, 이 에러가 발생합니다.

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
});

언급URL : https://stackoverflow.com/questions/29547003/angularjs-no-access-control-allow-origin-header-is-present-on-the-requested-r

반응형