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 each()方法的使用方法
Mar 18 Javascript
Jquery 滑入滑出效果实现代码
Mar 27 Javascript
javascript 跨浏览器开发经验总结(五) js 事件
May 19 Javascript
js跨域问题之跨域iframe自适应大小实现代码
Jul 17 Javascript
开发插件的两个方法jquery.fn.extend与jquery.extend
Nov 21 Javascript
JavaScript实现对下拉列表值进行排序的方法
Jul 15 Javascript
yarn的使用与升级Node.js的方法详解
Jun 04 Javascript
JavaScript定义函数的三种实现方法
Sep 23 Javascript
Vue 中使用vue2-highcharts实现曲线数据展示的方法
Mar 05 Javascript
使用Vuex解决Vue中的身份验证问题
Sep 28 Javascript
vue中渲染对象中属性时显示未定义的解决
Jul 31 Javascript
JavaScript中clientWidth,offsetWidth,scrollWidth的区别
Jan 25 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
一个简洁的多级别论坛
2006/10/09 PHP
PHP截取汉字乱码问题解决方法mb_substr函数的应用
2008/03/30 PHP
PHP 获取远程网页内容的代码(fopen,curl已测)
2011/06/06 PHP
php常量详细解析
2015/10/27 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
2020/05/15 PHP
Prototype源码浅析 Enumerable部分之each方法
2012/01/16 Javascript
深入理解Javascript里的依赖注入
2014/03/19 Javascript
jQuery实现简单网页遮罩层/弹出层效果兼容IE6、IE7
2014/06/16 Javascript
jQuery实现自动滚动到页面顶端的方法
2015/05/22 Javascript
jQuery实现的超酷苹果风格图标滑出菜单效果代码
2015/09/16 Javascript
NodeJs——入门必看攻略
2016/06/27 NodeJs
详解vue-cli中模拟数据的两种方法
2018/07/03 Javascript
js核心基础之闭包的应用实例分析
2019/05/11 Javascript
Webpack 4如何动态切割JS注入文件名详解
2019/07/09 Javascript
实现vuex与组件data之间的数据同步更新方式
2019/11/12 Javascript
零基础写python爬虫之抓取糗事百科代码分享
2014/11/06 Python
Python随手笔记之标准类型内建函数
2015/12/02 Python
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
2017/07/11 Python
python GUI实例学习
2017/11/21 Python
详解python函数传参是传值还是传引用
2018/01/16 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
2018/07/30 Python
python操作文件的参数整理
2019/06/11 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
2019/06/26 Python
Python collections中的双向队列deque简单介绍详解
2019/11/04 Python
pycharm 关掉syntax检查操作
2020/06/09 Python
彻底搞懂python 迭代器和生成器
2020/09/07 Python
Autopep8的使用(python自动编排工具)
2021/03/02 Python
CSS3改变浏览器滚动条样式
2019/01/04 HTML / CSS
Java面试题:请问一下代码输出是什么
2015/05/27 面试题
工商学院毕业生自荐信
2013/11/12 职场文书
生产部经理岗位职责
2013/12/16 职场文书
学生党员批评与自我批评
2014/10/15 职场文书
出国留学导师推荐信
2015/03/26 职场文书
2015年教学管理工作总结
2015/05/20 职场文书
css背景和边框标签实例详解
2021/05/21 HTML / CSS