J'écris ma webApp et j'utilise AngularJS. Dans cette application, j'ai créé un fichier appelé script.js et je rapporte ce code:
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";
});
});
Avec ce code, j'appelle l'API selon les principes de RESTful. Quand je lance le code, j'ai ce problème:
XMLHttpRequest ne peut pas charger https://api.getevents.co Aucun en-tête 'Access-Control-Allow-Origin' n'est présent sur la ressource demandée. Origin ' http: // localhost: 838 ' n'est donc pas autorisé à accéder.
En lisant sur le Web, j'ai compris que j'avais un problème appelé CORS ... J'ai essayé plusieurs solutions proposées mais je n'ai pas résolu le problème.
Comment puis-je résoudre le problème?
Quel est le code que je dois ajouter pour le réparer?
Ceci est un problème côté serveur. Vous n'avez pas besoin d'ajouter d'en-tête dans angular pour cors. Vous devez ajouter un en-tête côté serveur:
Access-Control-Allow-Headers: Content-Type
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Allow-Origin: *
Les deux premières réponses ici: Comment activer CORS dans AngularJs
CORS est un partage de ressources d'origine multiple, vous obtenez cette erreur si vous essayez d'accéder d'un domaine à un autre.
Essayez d'utiliser JSONP. Dans votre cas, JSONP devrait fonctionner correctement car il utilise uniquement la méthode GET.
Essayez quelque chose comme ça:
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
});