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 相关文章推荐
密码框显示提示文字jquery示例
Aug 29 Javascript
jQuery+formdata实现上传进度特效遇到的问题
Feb 24 Javascript
node模块机制与异步处理详解
Mar 13 Javascript
详解jQuery中基本的动画方法
Dec 14 Javascript
Angular4的输入属性与输出属性实例详解
Nov 29 Javascript
在Vue 中使用Typescript的示例代码
Sep 10 Javascript
封装微信小程序http拦截器过程解析
Aug 13 Javascript
JavaScript中ES6规范中let和const的用法和区别
Aug 06 Javascript
js操作两个json数组合并、去重,以及删除某一项元素
Sep 22 Javascript
.netcore+vue 实现压缩文件下载功能
Sep 24 Javascript
Openlayers实现测量功能
Sep 25 Javascript
微信小程序视频弹幕发送功能的实现
Dec 28 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
ThinkPHP3.1数据CURD操作快速入门
2014/06/19 PHP
thinkphp,onethink和thinkox中验证码不显示的解决方法分析
2016/06/06 PHP
JavaScript While 循环基础教程
2007/04/05 Javascript
学习ExtJS TextField常用方法
2009/10/07 Javascript
jQuery绑定事件不执行但alert后可以正常执行
2014/06/03 Javascript
javascript中递归函数用法注意点
2015/07/30 Javascript
JavaScript实现为input与textarea自定义hover,focus效果的方法
2015/08/21 Javascript
全面解析JavaScript的Backbone.js框架中的Router路由
2016/05/05 Javascript
JS封装的选项卡TAB切换效果示例
2016/09/20 Javascript
JS拉起或下载app的实现代码
2017/02/22 Javascript
如何使用Bootstrap 按钮实例详解
2017/03/29 Javascript
jQuery初级教程之网站品牌列表效果
2017/08/02 jQuery
vue2.0与bootstrap3实现列表分页效果
2017/11/28 Javascript
使用Angular Cli如何创建Angular私有库详解
2019/01/30 Javascript
JS解惑之Object中的key是有序的么
2019/05/06 Javascript
ElementUI多个子组件表单的校验管理实现
2019/11/07 Javascript
JavaScript运动原理基础知识详解
2020/04/02 Javascript
[47:10]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第二场 12.16
2020/12/18 DOTA
[06:07]DOTA2-DPC中国联赛3月5日Recap集锦
2021/03/11 DOTA
多线程爬虫批量下载pcgame图片url 保存为xml的实现代码
2013/01/17 Python
Python中模块pymysql查询结果后如何获取字段列表
2017/06/05 Python
Python中property属性实例解析
2018/02/10 Python
Python实现分段线性插值
2018/12/17 Python
布隆过滤器的概述及Python实现方法
2019/12/08 Python
python函数map()和partial()的知识点总结
2020/05/26 Python
置业顾问岗位职责
2014/03/02 职场文书
财产公证书格式
2014/04/10 职场文书
选秀节目策划方案
2014/06/06 职场文书
教师党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
2015年监理个人工作总结
2015/05/23 职场文书
导游词之沈阳植物园
2019/11/30 职场文书
JavaScript 去重和重复次数统计
2021/03/31 Javascript
Django使用echarts进行可视化展示的实践
2021/06/10 Python
厉害!这是Redis可视化工具最全的横向评测
2021/07/15 Redis
java多态注意项小结
2021/10/16 Java/Android
2021年国产动漫公司排行前十名,玄机科技上榜,第二推出过铠甲勇士
2022/03/18 杂记