嗨,我对angularjs和chrome有问题,这是代码:
var angularRoutingApp = angular.module('angularRoutingApp', ['ngRoute']) // Configuración de las rutas .config(function($routeProvider) { $routeProvider .when('/', { templateUrl : 'pages/home.html', controller : 'mainController' }) .when('/artistas', { templateUrl : 'pages/artistas.html', controller : 'artistasController' }) .when('/login', { templateUrl : 'pages/login.html', controller : 'loginController' }) .otherwise({ redirectTo: '/' }); });
如果我用Opera,Firefox或safary打开index.html,则没有任何问题,但如果我用Chorme打开,则不能运行routerprovider,并在控制台中显示如下错误消息:
XMLHttpRequest无法加载file://localhost/Users/multivideo/Desktop/FTL- Angular/pages/home.html。跨源请求仅支持HTTP。index.html:1
Error: A network error occurred. at Error (native) at https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js:72:206 at C (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js:68:99) at f (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js:66:69) at C (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js:92:375) at C (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js:92:375) at https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js:94:28 at h.$eval (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js:102:293) at h.$digest (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js:100:50) at h.$apply (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js:103:100) angular.js:9413
Chrome使用严格的同源政策。您可以做两件事:
1)您通常不应该从开始发展file://。使用甲基苯丙胺,你的内置Apache Web服务器或其他方式来建立一个本地Web服务器。如果您使用的是Mac,按照我提供的路径推测,您可以通过打开终端并输入以下命令来启动基于Python的非常简单的http服务器
file://
$> python -m SimpleHTTPServer 8080
这将从您调用它的文件夹中的端口8080上打开一个简单的HTTP服务器。
2)您可以(但实际上不应)放松Chrome的安全设置。这是可能的,但是通常是不好的做法。