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

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

逄嘉禧
2023-03-14

嗨,我对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的html我没有任何问题,但是如果我使用Chorme打开此文件,请不要使用routerprovider,并在控制台中显示错误消息,如下所示:

无法加载XMLHttpRequestfile://localhost/Users/multivideo/Desktop/FTL-Angular/pages/home.html.仅HTTP支持跨源请求。指数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

共有3个答案

卓麒
2023-03-14

除了@Chris vCB的答案之外,如果需要,还可以使用php

php -S localhost:8080

或任何域名::端口

卢承弼
2023-03-14

你应该有一个web服务器正在运行.用file://打开它将在一些浏览器中启用保护,这将阻止你运行部分代码,例如ajax调用。

最好的解决方案是运行Web服务器,特别是因为angular附带了一个Web服务器。例如,我使用yeoman,可以运行grunt-service。在这里呻吟https://docs.angularjs.org/tutorial/step_00

另一个选项是设置chrome以允许XHR使用文件协议允许GoogleChrome使用XMLHttpRequest从本地文件加载URL

朱鸿畅
2023-03-14

Chrome使用相当严格的主域同源策略。你可以做两件事:

1)您通常不应该从file://开发。使用MAMP、内置Apache Web服务器或其他方法设置本地Web服务器。如果你在苹果电脑上,正如我从你提供的路径推测的那样,你可以通过打开终端并输入

$> python -m SimpleHTTPServer 8080

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

2)你可以,但你真的不应该放松Chrome的安全设置。这是可能的,但通常是不好的做法。

 类似资料:
  • 问题内容: 嗨,我对angularjs和chrome有问题,这是代码: 如果我用Opera,Firefox或safary打开index.html,则没有任何问题,但如果我用Chorme打开,则不能运行routerprovider,并在控制台中显示如下错误消息: XMLHttpRequest无法加载file://localhost/Users/multivideo/Desktop/FTL- Angu

  • 我用保存了一个文件。我的应用程序中的docx扩展名。该文件保存在sdcard中。该文件在我的sdcard中显示为word文件,但我无法打开它(使用polaris或任何其他默认软件),并显示消息“不支持的文件”。 当我保存扩展名为. txt的文件时,我可以打开它。 谢谢亚历山德鲁...但现在我在运行应用程序时收到一条错误消息,指出“此元素的Javadoc既无法在附加的源代码中找到,也不能在附加的Ja

  • 我想打开一个PDF文件时,用户点击一个按钮。目前,我正在使用这段代码来实现这一点: 但不管用。 当我选择使用Adobe Acrobat时,我会得到一条显示为Toast的消息,它说 当我尝试使用Drive PDF Viewer时,我得到 PDF文件存储在 问题出在哪里? 编辑 现在我使用的是以下代码: 但当我尝试通过点击按钮打开PDF时,应用程序崩溃了。 这是我得到的日志: 这是我的课: } 有人能

  • 问题内容: 我使用Windows桌面搜索开发Java应用程序,从中可以检索有关计算机文件的一些信息,例如url(System.ItemUrl)。这样的URL的一个例子是 用于“普通”文件。此字段还提供从Outlook或Thunderbird索引的邮件项目的URL。雷鸟的项目(仅适用于Vista和7)也是文件(.wdseml)。但是Outlook的项目网址以“ mapi://”开头,例如: 我遇到的

  • 如果Chrome能在我期望的时候打开文件,那就太好了。我会很感激你的帮助。

  • 开始学习AngularJS的官方教程。它在firefox中运行良好,但无法打开示例并在Chrome上运行测试。 尝试了wget一些json资源,效果不错。 HTTP日志: Chrome上的相同资源: