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 相关文章推荐
JavaScript中的History历史对象
Jan 16 Javascript
javascript,jquery闭包概念分析
Jun 19 Javascript
javascript基础知识大集锦(二) 推荐收藏
Jan 13 Javascript
Javascript的严格模式strict mode详细介绍
Jun 06 Javascript
javascript的document.referrer浏览器支持、失效情况总结
Jul 18 Javascript
JavaScript实现文本框中默认显示背景图片在获得焦点后消失的方法
Jul 01 Javascript
JS获取元素多层嵌套思路详解
May 16 Javascript
微信公众平台开发教程(五)详解自定义菜单
Dec 02 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
Apr 20 Javascript
socket在egg中的使用实例代码详解
May 30 Javascript
解决jquery validate 验证不通过后验证正确的信息仍残留在label上的方法
Aug 27 jQuery
Vue根据条件添加click事件的方式
Nov 09 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入门学习知识点三 PHP上传
2011/07/14 PHP
PHP采集腾讯微博的实现代码
2012/01/19 PHP
php商品对比功能代码分享
2015/09/24 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
2019/09/08 PHP
JS的IE和Firefox兼容性集锦
2006/12/11 Javascript
Jquery+ajax请求data显示在GridView上(asp.net)
2010/08/27 Javascript
JS常用正则表达式总结
2013/11/12 Javascript
jquery ajax 局部无刷新更新数据的实现案例
2014/02/08 Javascript
JavaScript中诡异的delete操作符
2015/03/12 Javascript
JS+CSS实现带小三角指引的滑动门效果
2015/09/22 Javascript
在Vue项目中使用jsencrypt.js对数据进行加密传输的方法
2019/04/17 Javascript
H5+css3+js搭建带验证码的登录页面
2020/10/11 Javascript
VUE-ElementUI 自定义Loading图操作
2020/11/11 Javascript
[01:05:41]EG vs Optic Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
深入理解python多进程编程
2016/06/12 Python
Python三种遍历文件目录的方法实例代码
2018/01/19 Python
pycharm debug功能实现跳到循环末尾的方法
2018/11/29 Python
Python基于datetime或time模块分别获取当前时间戳的方法实例
2019/02/19 Python
python字典的setdefault的巧妙用法
2019/08/07 Python
pygame实现贪吃蛇游戏(上)
2019/10/29 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
2020/03/19 Python
浅谈在django中使用filter()(即对QuerySet操作)时踩的坑
2020/03/31 Python
selenium自动化测试入门实战
2020/12/21 Python
俄罗斯旅游网站:Tripadvisor俄罗斯
2017/03/21 全球购物
荷兰的时尚市场:To Be Dressed
2019/05/06 全球购物
群胜软件Java笔试题
2012/09/29 面试题
后勤副校长自我鉴定
2013/10/13 职场文书
会计专业应届生求职信
2013/11/24 职场文书
党委书记个人检查对照材料思想汇报
2014/10/11 职场文书
2015年光棍节活动总结
2015/03/24 职场文书
奖励通知
2015/04/22 职场文书
2015年幼儿园班主任工作总结
2015/05/12 职场文书
2016猴年春节问候语
2015/11/11 职场文书
小学班级标语口号大全
2015/12/26 职场文书
导游词之韩国济州岛
2019/10/28 职场文书
Java网络编程之UDP实现原理解析
2021/09/04 Java/Android