• 10分钟秒懂ajax的同源与异步



    10分钟秒懂ajax的同源与异步

      众所周知,Ajax在前端开发中扮演着常人所不能扮演的角色,正因为他的方便,他的健壮,才一步步挺到了今天!
      Ajax是怎样获取数据,并且跨域请求的呢!我采用的是ajax+json来配置文件,在下边会与大家一一道来!

    一、同源
    1.首先搭建代理服务器环境

    • 1.我用的是nginx代理服务器,关于搭建这个环境推荐大家一个我朋友关于部署nginx环境的教程,
      http://www.cnblogs.com/changlel/p/6495623.html
      我环境已经配备好了,下面直接上硬货!
      2.建立文件夹

      我创建了三个服务器网址
      3.我在www.ajax.html项目文件下建立了一个index.html
    <body>
      <table id="tb_xinxi">
        <tr>
          <th>姓名</th>
          <th>年龄</th>
          <th>性别</th>
        </tr>
      </table>
    

    只需写出几行代码,最主要的是table标签加了一个id
    4.建立一个json文件,下面有代码!

    [                                          //json书写方法
        {"name":"八戒","age":18,"sex":"男"},
        {"name":"嫦娥","age":18,"sex":"女"},
        {"name":"悟空","age":15,"sex":"男"},
        {"name":"沙僧","age":28,"sex":"男"},
        {"name":"师傅","age":58,"sex":"男"},
        {"name":"白马","age":48,"sex":"男"},
        {"name":"龙王","age":35,"sex":"男"}
      ]
    

    5.我引入的是jQuery1.8.3库,引入链接用的是代理服务器书写方法

    <script type="text/javascript" src="http://static.ajax.com/js/doT.js"></script>
      <script type="text/javascript" src="http://static.ajax.com/js/doT.min.js"></script>
      <script type="text/javascript" src="http://static.ajax.com/js/jquery1.8.3.min.js"></script>
      <script type="text/javascript" src="http://static.ajax.com/js/index.js"></script>
    

    6.js获取请求

        //同源状况下请求数据
     $.ajax({
      url:"http://www.ajax.com/xinxi.json",
       success:function(data){
         var xinxis=data;
    
         for(i=0;i<xinxis.length;i++){
           xinxi=xinxis[i];
           var trstr="<tr><td>"+xinxi.name+"</td><td>"+xinxi.age+"</td><td>"+xinxi.sex+"</td></tr>";
            $("#tb_xinxis").append(trstr);
         }
       }
     });
    

    我采用的是代理服务器,启动服务器,效果如下!

    这样Ajax同源请求就成功了
    二、异步请求(跨域)
      同源请求大家都有所了解,跨步对于很多前端新手来说不怎么懂,下边看看代码
    1.html代码没有区别跟上边相同!

    <body>
      <table id="tb_xinxi">
        <tr>
          <th>姓名</th>
          <th>年龄</th>
          <th>性别</th>
        </tr>
      </table>
    

    2.js代码有差异,差别在于我把json文件用一个函数包含住了,看代码:

    //异域请求
     $.getJSON("http://api.ajax.com/xinxi.json?callback=?");请求地址又改变
     function callback(data){ //callback函数大家发现没有
       var xinxis=data;
       for(i=0;i<xinxis.length;i++){
         xinxi=xinxis[i];
         var trstr="<tr><td>"+xinxi.name+"</td><td>"+xinxi.age+"</td><td>"+xinxi.sex+"</td></tr>";
          $("#tb_xinxis").append(trstr);
       }
    };
    

    3.json代码,文件如下,被callback函数所包裹

    callback([
        {"name":"八戒","age":18,"sex":"男"},
        {"name":"嫦娥","age":18,"sex":"女"},
        {"name":"悟空","age":15,"sex":"男"},
        {"name":"沙僧","age":28,"sex":"男"},
        {"name":"师傅","age":58,"sex":"男"},
        {"name":"白马","age":48,"sex":"男"},
        {"name":"龙王","age":35,"sex":"男"}
      ]);
    

    效果图同上!Ajax跨域与同源其实相差不大,跨域的时候记得给json文件添加个函数,这样就可以实现

  • 相关阅读:
    ORACLE锁表问题
    迅雷极速版解决版本太旧提示问题
    迅雷极速版任务出错的解决办法(亲测可用)
    百度文库免积分免费下载工具的原理与实现
    C#启动另一个应用程序并传参数
    C#设置WebBrowser IE浏览器版本
    JS强制刷新页面、清除缓存刷新
    JS播放声音
    Chrome插件(扩展)开发全攻略
    IIS7.5全站301跳转,内页+带参数url,这才是真正的全站跳转
  • 原文地址:https://www.cnblogs.com/chenxua/p/6496460.html
Copyright © 2020-2023  润新知