AngularJS使用ng-inlude指令加载页面失败的原因与解决方法


Posted in Javascript onJanuary 19, 2017

本文实例讲述了AngularJS使用ng-inlude指令加载页面失败的原因与解决方法。分享给大家供大家参考,具体如下:

AngularJS中提供的ng-include指令,很类似于JSP中的<jsp:include>用来将多个子页面合并到同一个父页面中,避免父页面过大,可读性差,不好维护。

父页面parent.html代码如下:

<html>
 <head>
  <script src="angular-1.2.2/angular.js"></script>
  <script>
   function rootController($scope,$rootScope,$injector)
   {
    $rootScope.name = "aty";
    $rootScope.age = 25;
   }
  </script>
 </head>
 <body ng-app ng-controller="rootController">
    <h1>Hello, {{name}}!</h1>
    <h1>Hello, {{age}}!</h1>
  <div id="included" ng-include="'child.html'">
      <input type="button" value="2"/>
    </div>
 </body>
</html>

被包含的子页面child.html代码如下:

<div>
    <h1>included, {{name}}!</h1>
    <h1>included, {{age}}!</h1>
</div>

我用IE11和Chrome39运行parent.html,发现child.html页面不能包含到parent.html中。IE下报错信息如下:

Error: 拒绝访问。
   at Anonymous function (file:///D:/learn/angular-1.2.2/angular.js:7852:7)
   at sendReq (file:///D:/learn/angular-1.2.2/angular.js:7720:9)
   at serverRequest (file:///D:/learn/angular-1.2.2/angular.js:7454:9)

chrome下报错信息如下:

XMLHttpRequest cannot load file:///D:/learn/include.html.
Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.
Failed to execute 'send' on 'XMLHttpRequest': Failed to load 'file:///D:/learn/include.html'.

IE下的提示有些晦涩,不过chrome提示很明显:不能跨域访问。通过上面的错误提示,可以看到:使用ng-include指令的时候,会用到AJAX请求XMLHttpRequest。但是我们是直接用浏览器打开的parent.html,并没有通过web容器访问,所以存在跨域访问问题,加载child.html也就失败了。解决办法很简单:将代码部署到tomcat等web容器下,通过http访问即可。

平时在练习JavaScript或者是JS框架的时候,一版都是使用比较轻量级的工具,不会使用像Eclipse之类IDE,我一般使用Notepad++编写js代码。Notepad++可以方便地调用本机安装的浏览器。像ng-include这样的指令,必须要有web容器的支持。可以使用前端开发神器webstorm,该工具运行html的时候,会自动启动内置的web容器,这样ng-include指令就不会报错了。

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
关于this和self的使用说明
Aug 01 Javascript
禁止ajax缓存获取程序最新数据的方法
Nov 19 Javascript
纯JS代码实现隔行变色鼠标移入高亮
Nov 23 Javascript
jQuery实现的省市联动菜单功能示例【测试可用】
Jan 13 Javascript
微信小程序 天气预报开发实例代码源码
Jan 20 Javascript
JavaScript获取URL参数的方法之一
Mar 24 Javascript
JS实现的二叉树算法完整实例
Apr 06 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
May 26 Javascript
浅谈React之状态(State)
Sep 19 Javascript
基于jquery实现的tab选项卡功能示例【附源码下载】
Jun 10 jQuery
JavaScript ECMA-262-3 深入解析(一):执行上下文实例分析
Apr 25 Javascript
深入理解 ES6中的 Reflect用法
Jul 18 Javascript
快速掌握jQuery插件开发
Jan 19 #Javascript
Web 开发中Ajax的Session 超时处理方法
Jan 19 #Javascript
JavaScript DOM节点操作实例小结(新建,删除HTML元素)
Jan 19 #Javascript
使用JavaScript触发过渡效果的方法
Jan 19 #Javascript
详解支持Angular 2的表格控件
Jan 19 #Javascript
原生JS实现几个常用DOM操作API实例
Jan 19 #Javascript
JS生成一维码(条形码)功能示例
Jan 19 #Javascript
You might like
用php简单实现加减乘除计算器
2014/01/06 PHP
zf框架db类的分页示例分享
2014/03/14 PHP
PHP扩展模块Pecl、Pear以及Perl的区别
2014/04/09 PHP
php使用imagick模块实现图片缩放、裁剪、压缩示例
2014/04/17 PHP
Laravel 不同生产环境服务器的判断实践
2019/10/15 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
简单三步,搞掂内存泄漏
2007/03/10 Javascript
利用js获取服务器时间的两个简单方法
2010/01/08 Javascript
jQuery EasyUI API 中文文档 - TreeGrid 树表格使用介绍
2011/11/21 Javascript
JS Pro-深入面向对象的程序设计之继承的详解
2013/05/07 Javascript
JS将表单导出成EXCEL的实例代码
2013/11/11 Javascript
javascript将异步校验表单改写为同步表单
2015/01/27 Javascript
javascript实现简单的鼠标拖动效果实例
2015/04/10 Javascript
javascript生成大小写字母
2015/07/03 Javascript
javascript跑马灯抽奖实例讲解
2020/04/17 Javascript
JavaScript实现横线提示输入验证码随输入验证码输入消失的方法
2016/09/24 Javascript
node.js博客项目开发手记
2018/03/16 Javascript
Vue formData实现图片上传
2019/08/20 Javascript
js实现弹幕飞机效果
2020/08/27 Javascript
快速解决element的autofocus失效问题
2020/09/08 Javascript
[00:33]DOTA2上海特级锦标赛 CDEC战队宣传片
2016/03/04 DOTA
python实现文件路径和url相互转换的方法
2015/07/06 Python
Python中使用platform模块获取系统信息的用法教程
2016/07/08 Python
python数字图像处理之高级滤波代码详解
2017/11/23 Python
python pandas修改列属性的方法详解
2018/06/09 Python
anaconda如何查看并管理python环境
2019/07/05 Python
opencv-python的RGB与BGR互转方式
2020/06/02 Python
使用CSS3来实现滚动视差效果的教程
2015/08/24 HTML / CSS
css3给背景图片加颜色遮罩的方法
2019/11/05 HTML / CSS
详解css3 flex弹性盒自动铺满写法
2020/09/17 HTML / CSS
html5中嵌入视频自动播放的问题解决
2020/05/25 HTML / CSS
Stefania Mode英国:奢华设计师和时尚服装
2017/10/23 全球购物
意大利高端时尚买手店:Stefania Mode
2018/03/01 全球购物
Currentbody美国/加拿大:美容仪专家
2020/03/09 全球购物
Kubernetes关键组件与结构组成介绍
2022/03/31 Servers
使用CSS实现按钮边缘跑马灯动画
2023/05/07 HTML / CSS