没这样做过,本地做的小demo,都是直接右键在浏览器中打开。
碰到跨域的,之前使用apache,在自己笔记本上搭建了一个虚拟服务器,可以在本地测试。
apache搭建服务器,下载安装apache软件即可,步骤略。
使用ajax取本地json
- jq ajax
<script type="text/javascript">
$(function () {
$.ajax({
type:"get",
url:"data.json",
dataType:"json",
success: function(data){
var data = data.dataSource;
for(var i = 0; i < data.length; i++){
var temp = "<a href='"+data[i].url+"' target='_blank'><li>"+data[i].description+"</li></a>";
$("#list").append(temp);
}
}
});
});
</script>
- data.json
{"dataSource":[{
"description":"宝武因特网出口DMZ区测试站点:http://10.251.20.93/",
"url": "http://10.251.20.93/"
},
{
"description": "宝武私有云区域测试站点:http://10.70.0.16/",
"url": "http://10.70.0.16/"
}]
}
-
页面报错跨域
直接右键打开html文件,会报跨域的问题
直接右键跨域1.png
跨域问题先不说,只有前端搞不定
我想的最简单的办法就是利用script标签src引入js文件,但这个js文件只放数据。
使用tomcat模拟
那问题来了,怎么把文件放到tomcat上跑起来?
- 找到tomcat安装路径
-
将本地文件复制到tomcat webapps目录下:
将文件放到tomcat webapps下1.png
-
回到bin目录,点击startup.bat文件运行
bin目录 跑一下2.png
- 浏览器手动输入
localhost: 8080/文件工程名/页面名.html
这样在本地模拟,不会产生跨域。
放 ie8,会报错
- 原因是jq3.0版本,不支持ie8.
解决方案:要么替换低版本的jq,2.0以下的都可以。
要么兼容写法:修改高版本中的一些方法,添加if else判断即可。
- ie8报错isArray
// isArray: Array.isArray, // 高版本
isArray: Array.isArray || function( obj ) {
return jQuery.type(obj) === "array";
},//兼容低版本
- ie8报错addEventListner
// ie8不支持addEventListener zz
if (window.attachEvent) {
window.attachEvent("onload", completed);
} else if (window.addEventListener) {
// Use the handy event callback
document.addEventListener( "DOMContentLoaded", completed );
// A fallback to window.onload, that will always work
window.addEventListener( "load", completed );
}
-
引入低版本的ie8显示正常:
放ie8 正常.png
网友评论