一尘不染

无法在Chrome中使用文件协议打开Angular应用

angularjs

嗨,我对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

阅读 257

收藏
2020-07-04

共1个答案

一尘不染

Chrome使用严格的同源政策。您可以做两件事:

1)您通常不应该从开始发展file://。使用甲基苯丙胺你的内置Apache
Web服务器
或其他方式来建立一个本地Web服务器。如果您使用的是Mac,按照我提供的路径推测,您可以通过打开终端并输入以下命令来启动基于Python的非常简单的http服务器

$> python -m SimpleHTTPServer 8080

这将从您调用它的文件夹中的端口8080上打开一个简单的HTTP服务器。

2)您可以(但实际上不应)放松Chrome的安全设置。这是可能的,但是通常是不好的做法。

2020-07-04