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 相关文章推荐
List Information About the Binary Files Used by an Application
Jun 11 Javascript
jQuery 跨域访问问题解决方法
Dec 02 Javascript
jQuery dialog 异步调用ashx,webservice数据的代码
Aug 03 Javascript
理解JavaScript中的对象 推荐
Jan 09 Javascript
jquery $.ajax相关用法分享
Mar 16 Javascript
JavaScript Math.ceil() 函数使用介绍
Dec 11 Javascript
JS常用表单验证方法总结
May 22 Javascript
Jquery和angularjs获取check框选中的值的方法汇总
Jan 17 Javascript
jQuery simplePage+AJAX plus分页插件用法实例
Feb 17 Javascript
JS控制伪元素的方法汇总
Apr 06 Javascript
js实现简单数字变动效果
Nov 06 Javascript
优雅的处理vue项目异常实战记录
Jun 05 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和Mysql中转UTF8编码问题汇总
2015/10/10 PHP
PHP错误处理函数register_shutdown_function使用示例
2017/07/03 PHP
PHP数据库操作三:redis用法分析
2017/08/16 PHP
javascript css float属性的特殊写法
2008/11/13 Javascript
JQuery中的$.getJSON 使用说明
2011/03/10 Javascript
jQuery的DOM操作之删除节点示例
2014/01/03 Javascript
在jquery boxy中添加百度地图坐标拾取注意流程
2014/04/03 Javascript
jquery中使用循环下拉菜单示例代码
2014/09/24 Javascript
javascript中call和apply的用法示例分析
2015/04/02 Javascript
javascript模拟命名空间
2015/04/17 Javascript
Javascript 制作图形验证码实例详解
2016/12/22 Javascript
JavaScript如何一次性展示几万条数据
2017/03/30 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
2017/06/12 Javascript
Vue.js组件使用props传递数据的方法
2019/10/19 Javascript
Vue 实现把表单form数据 转化成json格式的数据
2019/10/29 Javascript
Vue中keep-alive的两种应用方式
2020/07/15 Javascript
vue实现简单计算商品价格
2020/09/14 Javascript
从零开始用webpack构建一个vue3.0项目工程的实现
2020/09/24 Javascript
python批量同步web服务器代码核心程序
2014/09/01 Python
Python自定义类的数组排序实现代码
2016/08/28 Python
python安装numpy和pandas的方法步骤
2019/05/27 Python
python进程池实现的多进程文件夹copy器完整示例
2019/11/27 Python
python如何将两张图片生成为全景图片
2020/03/05 Python
PyTorch安装与基本使用详解
2020/08/31 Python
python使用selenium爬虫知乎的方法示例
2020/10/28 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
2020/11/26 Python
HTML5单选框、复选框、下拉菜单、文本域的实现代码
2020/12/01 HTML / CSS
财务管理职业生涯规划范文
2013/12/27 职场文书
医学生职业规划范文
2014/01/05 职场文书
幼儿园家长会欢迎词
2014/01/09 职场文书
浙江文明网签名寄语
2014/01/18 职场文书
中学生获奖感言
2014/02/04 职场文书
军训教官感言
2014/03/02 职场文书
护士节活动总结
2014/08/29 职场文书
政协工作总结2015
2015/05/20 职场文书
比较几种Redis集群方案
2021/06/21 Redis