全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

解决ajax不能访问本地文件问题(利用js跨域原理)

博主自己在开发一个无后台,只有前台的查询系统时,遇到一个困难,如何利用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 


相关文章: 如何基于云服务器快速搭建个人网站?  如何在宝塔面板创建新站点?  如何在橙子建站上传落地页?操作指南详解  制作宣传网站的软件,小红书可以宣传网站吗?  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  如何快速生成ASP一键建站模板并优化安全性?  招贴海报怎么做,什么是海报招贴?  如何制作网站标识牌,动态网站如何制作(教程)?  如何正确选择百度移动适配建站域名?  建站之星如何实现五合一智能建站与营销推广?  黑客如何通过漏洞一步步攻陷网站服务器?  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  如何规划企业建站流程的关键步骤?  建站之星如何开启自定义404页面避免用户流失?  c# Task.ConfigureAwait(true) 在什么场景下是必须的  如何通过多用户协作模板快速搭建高效企业网站?  建站之星会员如何解锁更多建站功能?  小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化  购物网站制作公司有哪些,哪个购物网站比较好?  如何快速搭建虚拟主机网站?新手必看指南  制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?  香港网站服务器数量如何影响SEO优化效果?  魔方云NAT建站如何实现端口转发?  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  太平洋网站制作公司,网络用语太平洋是什么意思?  再谈Python中的字符串与字符编码(推荐)  如何在腾讯云服务器上快速搭建个人网站?  已有域名如何快速搭建专属网站?  建站主机核心功能解析:服务器选择与网站搭建流程指南  b2c电商网站制作流程,b2c水平综合的电商平台?  寿县云建站:智能SEO优化与多行业模板快速上线指南  建站之星2.7模板:企业网站建设与h5定制设计专题  代购小票制作网站有哪些,购物小票的简要说明?  如何在服务器上三步完成建站并提升流量?  如何快速启动建站代理加盟业务?  上海网站制作开发公司,上海买房比较好的网站有哪些?  官网网站制作腾讯审核要多久,联想路由器newifi官网  如何批量查询域名的建站时间记录?  专业商城网站制作公司有哪些,pi商城官网是哪个?  如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  岳西云建站教程与模板下载_一站式快速建站系统操作指南  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】  ,石家庄四十八中学官网?  如何通过远程VPS快速搭建个人网站?  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  如何高效生成建站之星成品网站源码? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。