Les demandes d'origine croisée sont uniquement prises en charge pour HTTP
Je suis en train d'exécuter ce code:
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<title>Exemple 06</title>
</head>
<body>
<!-- Diretiva ng-repeat -->
<div ng-controller="MyController">
<a ng-href="#/">Page 1</a> | <a ng-href="#/p2">Page 2</a>
<div ng-view="#/p2"></div>
</div>
<script src="js/angular.js"></script>
<script src="js/angular-route.js"></script>
<script type="text/javascript">
var myApp = angular.module('myApp', ['ngRoute']);
myApp.config(function($routeProvider){
$routeProvider
.when('/' , {controller: 'MyController', templateUrl: 'p1.html'})
.when('/p2', {controller: 'MyController', templateUrl: 'p2.html'})
.otherwise({ redirectTo: '/'});
});
myApp.controller('MyController', function($scope){
$scope.nomes = [
{id: 1, nome: 'Arthur'},
{id: 2, nome: 'Portos'},
{id: 3, nome: 'Aramis'}
];
});
</script>
</body>
mais l'erreur ci-dessous se produit:
XMLHttpRequest ne peut pas charger file:///home/93579551515/Desktop/Angular/p1.html. Origine de la croix demandes sont prises en charge uniquement pour HTTP.
Je ne veux pas l'exécuter sur un serveur web.
source d'informationauteur Luciano Borges
Vous devez vous connecter pour publier un commentaire.
Vous pouvez ajouter des modèles tels que
p1.html
etp2.html
dans votreindex.html
en les plaçant à l'intérieur descript
balises, comme mentionné dans les docs.Puis
angular
n'aurez plus besoin de faire des requêtes AJAX pour récupérer.Ne noter que ces
script
éléments doivent apparaître aprèsng-app
.J'ai le même problème dans Chrome, si vous utilisez google Chrome, vous pouvez désactiver la même origine dans google Chrome. Départ le Chrome fonctionne:
Voici plus de détails.
Route fournisseur utilise le protocole http qui est pourquoi si vous exécutez ce code directement à partir d'un dossier, vous obtiendrez origine de la croix problème.
Garder votre dossier sur un serveur comme localhost/itinéraire et de l'exécuter.
Fournir chemin de référence comme templateUrl: '/p1.html'