ajax提供了异步访问服务器的方法,使页面无须刷新就可以更改页面内容,在实际情况中使用原生的情况较少但是原理需要掌握,一般都是使用jquey更轻量级的实现ajax但是原理是共同的。

    原生ajax使用过程:

1.创建ajax核心对象

IE浏览器核心对象为XMLHTTP,其他浏览器核心对象为XMLHTTPRequest,因此为了解决不同浏览器的兼容问题需要对浏览器核心对象进行判断

var xmlhttp;

if(window.XMLHTTP){

xmlhttp=new XMLHTTPRequest();

}else{

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");//ie6以下版本

}

2.创建请求

        open()中有三个参数,第一个参数是请求方式,有两种get和post,两者区别在于get更快更便捷,在以下几种情况必须用post方式

(1)向服务器发送大量数据的时候;

(2)发送包含未知字符输入的时候,比如表单中的提交信息是由用户所撰写的

(3)无法使用缓存文件的时候

第二个参数是后端文件的地址,第三个参数是否异步,只有为true时才可异步,开启信息传送

         xmlhttp.open("get","example.php",true);

3.发送请求参数

不同的页面需求不同,需要获取不同的数据需要依靠请求参数实现,多个请求参数之间以&连接

xmlhttp.send("user="+user&"password="+password);

只有post请求的参数才能够放在send中,如果是get请求的方式,参数不允许放在send()中,而是要放在后端数据文件地址后面以?连接,并且还要在中间加上请求头

xmlhttp.open("get","example.php?user="+user+"&password="+password",true);

xmlhttp.setRequestHeader("content-Type","application/x-www-form-urlencoded");

xmlhttp.send(null);

4.接受响应

       

页面有五种请求状态readyState,0:尚未初始化  1:正在发送请求  2:请求完成  3:接受响应  4:响应完毕

服务器返回状态status  404:找不到页面  200:响应成功  500:内部服务器错误

xmlhttp.onreadystatechange=functino(){

if(xmlhttp.readyState==4 && xmlhttp.status==200){

var date = xmlhttp.responseText   //使用文本格式拿数据,也有其他方式获取数据请自便

}

}

jquery ajax使用过程:

1.post请求方式

$.ajax({

type:'POST',            //请求方式
           url:'example.php',        //发送请求的地址
           dataType:'json',         //服务器返回的数据类型
           data:{name:xxx,age:xxx},    //发送到服务器的数据,对象必须为key/value的格式,jquery会自动转换为字符串格式
           success:function(data){
                                  //请求成功,返回内容
           },
           error:function(jqXHR){
             //请求失败,返回内容
          }
        });


         
  2.get请求方式      

$.ajax({
            type:'GET',           
            url:'example.php?name'+=xxx,  //发送请求的地址以及传输的数据
            dataType:'json',         //服务器返回的数据类型
            success:function(data){
             //请求成功,返回内容
            },
            error:function(jqXHR){
             //请求失败,返回内容
            }
          });

JavaScript之原生ajax && jQuery之ajax的更多相关文章

  1. JS原生Ajax&Jquery的Ajax技术&Json

    1.介绍Ajax Ajax = 异步 JavaScript 和 XML Ajax是一种创建快速动态网页的技术 通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新.这意味着可以不用整个 ...

  2. 原生和jQuery的ajax用法

    jQuery的ajax方法: $.ajax({ url:'/comm/test1.php', type:'POST', //GET async:true, //或false,是否异步 data:{ n ...

  3. Ajax 原生和jQuery的ajax用法

    https://www.cnblogs.com/jach/p/5709175.html form数据的序列化: $('#submit').click(function(){ $('#form').se ...

  4. 原生和jquery 的 ajax

    form数据的序列化: $('#submit').click(function(){ $('#form').serialize(); //会根据input里面的name,把数据序列化成字符串:eg:n ...

  5. 前端 - js方式Ajax/ jquery方式Ajax / 伪 ajax /伪ajax 进阶方式

    DJANGO环境搭建: 目录文件: 关闭CSRF 添加目录文件路径 配置url 视图配置: index页面配置: 测试:(成功) 进入正题: ajax 通过GET提交数据至后台: <!DOCTY ...

  6. Jquery调用ajax,出现一直跳转到error问题

    今天做项目的时候,遇到ajax请求,一直都是跳转到了error部分,一直没有进入success部分 后来查了一下网上的资料,有两三种说法, 一种是将dataType :'json',改成你相应的版本, ...

  7. 锋利jQuery 学习整理之 第六章 jQuery 与Ajax 的应用

    1.Ajax 的XMLHttpRequest 对象 XMLHttpRequest 是Ajax 的核心,它是Ajax 实现的关键---发送异步请求.接受响应及执行回调都是通过它来完成的.XMLHttpR ...

  8. jQuery 与 Ajax 的应用

    Ajax 全称为 "Asynchronous JavaScript and XML"(异步 JavaScript 和 XML ),它并不是指一种单一的技术,而是有机地利用了一系列交 ...

  9. 第6章 jQuery与Ajax的应用

    6.1 Ajax的优势和不足 6.1.1 Ajax的优势 1.不需要插件支持 2.优秀的用户体验 3.提高Web程序的性能 Ajax模式只是通过XMLHttpRequest对象向服务器端提交希望提交的 ...

  10. 根据JavaScript中原生的XMLHttpRequest实现jQuery的Ajax

    基本介绍 XmlHttpRequest XmlHttpRequest是JavaScript中原生的,历史悠久的一种发送网络请求的方案. 基本上所有前端框架对于网络请求的部分都是基于它来完成的. 在本章 ...

随机推荐

  1. [转帖]Elasticsearch-sql 用SQL查询Elasticsearch

    https://www.cnblogs.com/kangoroo/p/7273493.html https://www.cnblogs.com/kangoroo/p/7273493.html Elas ...

  2. 随性翻译: Java的运行时参数简单总结

    Java的运行时参数简单总结 简单学习了下Oracle官方的资料: https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.ht ...

  3. 【APP 逆向百例】Frida 初体验,root 检测与加密字符串定位

    声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容.敏感网址.数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 本文章未经许 ...

  4. jenkins 安装与构建过程中的系列问题

    一.插件安装遇到的依赖问题 插件安装分为在线安装和离线安装 1.在线安装 搜索要安装的插件,然后进行安装即可 2.离线安装hpi文件 使用该方法安装插件每次只能安装一个插件,且如果插件之间存在依赖性则 ...

  5. 淘宝一面:“说一下 Spring Boot 自动装配原理呗?”

    本文已经收录进 Github 95k+ Star 的Java项目JavaGuide .JavaGuide项目地址 : https://github.com/Snailclimb/JavaGuide . ...

  6. 深度学习应用篇-计算机视觉-语义分割综述[6]:DeepLab系列简介、DeepLabV3深入解读创新点、训练策略、主要贡献

    深度学习应用篇-计算机视觉-语义分割综述[6]:DeepLab系列简介.DeepLabV3深入解读创新点.训练策略.主要贡献 0.DeepLabV3深入解读 1.DeepLab系列简介 1.1.Dee ...

  7. C++ Boost 实现异步端口扫描器

    端口扫描是一种用于识别目标系统上哪些网络端口处于开放.关闭或监听状态的网络活动.在计算机网络中,端口是一个虚拟的通信端点,用于在计算机之间传输数据.每个端口都关联着特定类型的网络服务或应用程序.端口扫 ...

  8. ntp.conf详解

    linux系统的ntp.conf文件默认保存在/etc/ntp.conf 版本: [root@dsview ntpstats]# cat /etc/redhat-release CentOS rele ...

  9. 记录开发中element树形控件数据应用在页面上的相关问题

    业务场景 根据后台返回数据生成角色权限的树形结构.获取节点数据后,当父节点被勾选时,所有的子节点全部被勾选,而实际上后台并没有返回当前父节点的所有子节点的ID,所以应该只有部分子节点被勾选. 下面第一 ...

  10. SDK多项目开发与联调

    在SDK开发中,因为是往外提供的功能静态库,所以在开发的时候要验证开发的SDK是否功能正常,这里就需要做进行边开发边联调的工作. 下面使用的开发模式是创建一个WorkSpace工作工具,SDK项目和D ...