博主自己在开发一个无后台,只有前台的查询系统时,遇到一个困难,如何利用Ajax读取自己的本地json文件,百度、谷歌了下,发现大部分文章都是在说修改浏览器参数,但是自己想想,用户在使用时,还要修改浏览器的参数,这样显然降低了用户体验。自己琢磨了一段时间,发现可以利用js跨域原理来解决这个瓶颈。将之前要读取的json文件,变为js对象文件,这样就可以读取这个文件,然后写一个函数来对这个js对象进行解析。

首先说明下js跨域原理和jsonp这个技术(如果说的不详细,可自行百度、谷歌)
src可以跨域请求,但是这个资源不能作为js解析,资源不是js,所以解析json的时候会出错
中间是一个对象,调用fun把这个对象传入进去,
定义的function fun可以看作是请求成功后回调函数
jsonp本质:是通过script标签跨域,来突破跨域限制请求;返回的数据中用一个函数来包装起来
jsonp是用来解决js跨域请求数据的问题,原理:是通过script标签可以跨域请求资源的原理间接的请求数据。
jsonp需要满足3个条件:
1、通过script的src请求资源
2、请求的资源中用回调函数的将数据进行包裹
3、调用方要定义回调函数
下面贴入demo来演示Ajax读取本地文件,ps:在没有服务器的情况下
下面是上面html页面打开效果图(为了说明成功读取本地文件)
贴入上面的test.html代码
<script type="text/javascript" src="js/jquery-easyui-1.3.2/jquery-1.8.0.min.js"></script>
<script>
function fun(data){
//var dataj=JSON.parse(data.pro); //可以将json字符串转换成json对象
alert(data.pro);
var obj = eval(data.pro);
//alert(obj.name);
//$.each(obj,function(index,position){
//alert(+position['name']);
//html+="<option value='"+position['name']+"'>"+position["name"]+"</option>";
//});
for(var i=0;i<obj.length;i++){
alert(obj[i].name);
}
alert(1);
}
</script>
/*下面的代码,是之前利用ajax来读取本地json文件的代码,是不能实现的,运行时,可以不贴入下面的代码*/
<script type="text/javascript" src="json/abc.json"></script>
<script>
$(function(){
alert($);
/*$.ajax({
type: "GET",
url: "json/positionMenu.json",
dataType: "json",
success:function(data){
alert(data);
}
});*/
})
</script>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# ajax本地跨域请求
# ajax跨域访问解决方案
# ajax
# 跨域访问
# 用jQuery与JSONP轻松解决跨域访问的问题
# 使用jsonp完美解决跨域问题
# js前端解决跨域问题的8种方案(最新最全)
# 5种处理js跨域问题方法汇总
# NODE.JS跨域问题的完美解决方案
# 详解VueJs前后端分离跨域问题
# javascript跨域方法、原理以及出现问题解决方法(详解)
# AngularJs解决跨域问题案例详解(简单方法)
# js跨域问题浅析及解决方法优缺点对比
# JavaScript中跨域问题的深入理解
# 回调
# 自己的
# 是一个
# 一个函数
# 是在
# 如果说
# 查询系统
# 转换成
# 可以利用
# 大家多多
# 就可以
# 情况下
# 降低了
# 是用来
# function
# 不贴入
# fun
# src
# ps
相关文章:
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
如何用VPS主机快速搭建个人网站?
网站制作培训多少钱一个月,网站优化seo培训课程有哪些?
创业网站制作流程,创业网站可靠吗?
湖北网站制作公司有哪些,湖北清能集团官网?
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析
如何快速搭建响应式可视化网站?
大同网页,大同瑞慈医院官网?
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
如何制作算命网站,怎么注册算命网站?
如何设计高效校园网站?
建站之星如何快速解决建站难题?
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
制作门户网站的参考文献在哪,小说网站怎么建立?
建站之星2.7模板:企业网站建设与h5定制设计专题
如何生成腾讯云建站专用兑换码?
如何用PHP工具快速搭建高效网站?
建站之星后台密码遗忘如何找回?
小建面朝正北,A点实际方位是否存在偏差?
如何彻底卸载建站之星软件?
制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?
建站之星展会模板:智能建站与自助搭建高效解决方案
Swift中循环语句中的转移语句 break 和 continue
详解jQuery停止动画——stop()方法的使用
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
如何规划企业建站流程的关键步骤?
如何在万网主机上快速搭建网站?
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
如何用搬瓦工VPS快速搭建个人网站?
如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法
如何在万网ECS上快速搭建专属网站?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
如何确认建站备案号应放置的具体位置?
已有域名建站全流程解析:网站搭建步骤与建站工具选择
如何配置FTP站点权限与安全设置?
学校建站服务器如何选型才能满足性能需求?
如何在自有机房高效搭建专业网站?
如何零成本快速生成个人自助网站?
开封网站制作公司,网络用语开封是什么意思?
如何在企业微信快速生成手机电脑官网?
如何确保西部建站助手FTP传输的安全性?
c# await 一个已经完成的Task会发生什么
官网自助建站平台指南:在线制作、快速建站与模板选择全解析
建站之星代理平台如何选择最佳方案?
建站之星如何实现网站加密操作?
微信小程序 五星评分(包括半颗星评分)实例代码
定制建站如何定义?其核心优势是什么?
,巨量百应是干嘛的?
建站之星后台密码遗忘?如何快速找回?
*请认真填写需求信息,我们会在24小时内与您取得联系。