当前位置: 首页 > 知识库问答 >
问题:

AngularJS:请求的资源上不存在“Access Control Allow Origin”标头[重复]

莘聪
2023-03-14

我写我的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";
            });
    });

通过这段代码,我按照RESTful原则调用API。当我运行代码时,我遇到了以下问题:

无法加载XMLHttpRequesthttps://api.getevents.co 请求的资源上不存在“Access Control Allow Origin”标头。起源'http://localhost:8383因此,不允许访问。

在网上阅读时,我明白了我有一个叫做CORS的问题...我已经尝试了几个建议的解决方案,但我没有解决这个问题。
我如何解决这个问题?
我必须添加什么代码来修复它?

共有2个答案

纪枫
2023-03-14

CORS是跨源资源共享,如果您试图从一个域访问另一个域,则会出现此错误。

尝试使用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
});
吴西岭
2023-03-14

这是一个服务器端问题。你不需要为cors添加任何角头。您需要在服务器端添加标头:

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

这里的前两个答案:如何在AngularJs中启用CORS

 类似资料: