angularjs - 跨源请求仅支持 HTTP

标签 angularjs angularjs-routing

我正在尝试运行此代码:

<!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>

但出现以下错误:

XMLHttpRequest 无法加载 file:///home/93579551515/Desktop/Angular/p1.html。跨源请求仅支持 HTTP。

我不想在网络服务器上运行它。

最佳答案

您可以添加模板,例如 p1.htmlp2.html在您的 index.html把它们放进去 script标签,如 mentioned in the docs .

<script type="text/ng-template" id="p1.html">
  This is the content of the template
</script>

然后angular将不再需要发出 AJAX 请求来获取它们。

请注意这些 script元素必须出现在 ng-app 之后.

关于angularjs - 跨源请求仅支持 HTTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19847252/

相关文章:

angularjs - 使用单向绑定(bind)禁用复选框

javascript - 通过键访问对象属性

angularjs - ng-select 只给出字符串,但我想要一个整数

javascript - 如何在angular js中获取自定义属性的值

angularjs - 如何使用 ui-router 检查身份验证并自动重定向到登录状态?

javascript - Protractor 中的 waitForElementsToBePresent

angularjs - angular-route 如何防止第一次下载,但稍后允许

javascript - 如何通过在 Angular 中添加 ?&params 来构建自定义 URL?

angularjs - 在Angular中,如何从 Controller 内部找到 "called" Controller 的路由?

javascript - angularjs 状态提供者在 url 中使用除 id 之外的其他值