js原生ajax与jquery的ajax的用法区别

什么是ajax和原理?

  • AJAX 是一种用于创建快速动态网页的技术。
  • 通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据

XMLHttpRequest对象的基本属性:

  • onreadtstatechange 每次状态改变所触发事件的时间处理程序。
  • responseText 从服务器响应返回以字符串为形式的数据
  • responseXML 从服务器响应返回以XML(DOM兼容文档)数据对象
  • status 从服务器返回的数字代码
    • 100-199 用于指定客户端应相应的某些动作。
    • 200-299 用于表示请求成功。
    • 300-399 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。
    • 400-499 用于指出客户端的错误。
    • 500-599 用于支持服务器错误。
    • 常用 200(正常)404(找不到) 500(服务器错误)
    • 详细看 链接
  • status Text (如: if status==200 =>OK ) 伴随状态码的字符串信息
  • readyState 对象状态值
    • 0 (未初始化) 对象已建立,但是尚未初始化(尚未调用open方法)
    • 1 (初始化) 对象已建立,尚未调用send方法
    • 2 (发送数据) send方法已调用,但是当前的状态及http头未知
    • 3 (数据传送中) 已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误,
    • 4 (完成) 数据接收完毕,此时可以通过通过responseXml和responseText获取完整的回应数据
        

实例

<div id="content"></div>
<button id="btn"></button>
<script>

var btn=document.getElementById(‘btn‘);

btn.onclick=function(){

var http=null;
if(window.ActiveXObject){
    http=new ActiveXObject(‘Microsoft.XmlHTTP‘);
}else{
  http=new XmlHttpRequest();
}
var url="http://XXXX";  //指定url
http.open(‘GET‘,url,true);
//第一个参数选择哪种方式提交数据
//第二个参数是选择传递的地址
//第三个参数是选择是否异步传输,true:异步,false:同步

//当状态发生改变就触发的事件(可以理解为node.onchange=function())
http.readystatechange=function(){
   if(http.status==4&&http.status==200){
        //返回的对象状态值为:4
        //返回的状态码为200        document.getElementById(‘content‘).innerHTML=http.responseText;//返回值赋值到DOM
   }
   //简单的异常处理
   if(http.status==404){
       alert(‘响应失败‘);
   }
}
发送一个 HTTP 请求
http.send();
}
</script>

接下来是介绍jQuery的ajax提交

因为是为了对比与原生的区别,毕竟jQuery 的ajax更强大了,因为提供了更多内容的封装
- 首先,jquery的常用方式有

$.ajax,$.post, $.get, $.getJSON。

  • 先来个实例压压惊
$.ajax({
    //请求类型,get,post
    type:‘GET‘,
    // 请求的数据类型,可以是html,json,xml等
    dataType:‘json‘,
    //传输的数据
    data:{
        num1:num1,
        num2:num2
    },
    //选择是否支持异步刷新,默认为true
    async:true,
    success:function(){
         console.log(‘very good 请求成功‘);
    },
    error:function(){
         console.log(‘对不起,请求失败‘);
    }
})
  • 如果你是用.get或者 . post那更简单了,直接把type去掉也可以了
    是不是很简单?相比传统的用法,看起来更简洁,更容易理解,相当于往对象里面放值就可以自动化使用了

其实核心都是XMLHttpRequest对象的调用,和其对象属性的掌握。

原文转自:http://blog.csdn.net/dexing07/article/details/52759874

时间: 2024-10-13 16:25:41

js原生ajax与jquery的ajax的用法区别的相关文章

通过原生js的ajax或jquery的ajax获取服务器的时间

在实际的业务逻辑中,经常是与时间相关的,而前端能获得的时间有两个:客户端的时间,服务器的时间.客户端时间通过 javascript中的Date对象可以获取,如 Java代码   var dt = new Date(); var tm = dt.getTime(); 那么tm就是客户端的时间,另外也可以通过对应的getFullYear(),getMonth(),getDate()取到对应的年月日等...但这个时间可靠吗?好吧,那取服务器时间吧经常用到的是后台写一个php,jsp,cgi,asp..

Js - Dom原生对象和jQuery对象的联系、区别、相互转换

Dom原生对象和jQuery对象的联系.区别.相互转换: 联系: 1.jQuery对象:通过jQuery包装DOM对象后产生的对象: 2.两者之间可以相互转换:区别: 1.jquery选择器得到的jquery对象和标准的 javascript中的document.getElementById()取得的dom对象是两种不同的对象类型,两者不等价: 2.jQuery无法使用DOM对象的任何方法,同理DOM对象也不能使用jQuery里的方法. 乱使用会报错. 例如: $("#id").htm

Js原生Ajax和Jquery的Ajax

一.Ajax概述 1.什么是同步,什么是异步 同步现象:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待卡死状态 异步现象:客户端发送请求到服务器端,无论服务器是否返回响应,客户端都可以随意做其他事情,不会被卡死 2.Ajax的运行原理 页面发起请求,会将请求发送给浏览器内核中的Ajax引擎,Ajax引擎会提交请求到服务器端,在这段时间里,客户端可以任意进行任意操作,直到服务器端将数据返回给Ajax引擎后,会触发你设置的事件,从而执行自定义的js逻辑代码完成某种页面1 功能. 二

js文件、图片上传(原生方法和jquery的ajax两种都有)

<!DOCTYPE html><html> <head> <title>test</title> </head> <body> <input type="file" id="fileUpload"> <button id="submit">点击上传文件</button> <script src="javascri

Ajax相关(原生ajax,jQuery中ajax,axios)

1. get和post请求 从服务端获取数据:get请求 请求参数在地址栏中以urlencoded形式显示 格式:username=xcr&userAge=18 通过location.search可获取当前地址栏中 ? 及其后面的请求参数内容 可发送 2kb左右的数据 只能发送文本形式的数据 get请求可以被缓存,将地址保存,这个请求所携带的请求参数都将被保存 给服务端发送数据:post请求 post请求的参数在请求体中,不会在地址栏中体现,发送一些隐私数据时使用post请求发送,相对get请求

使用js手写兼容jquery的ajax

jquery-ajax.js var $ = new function() { this.ajax = function(param) { if(!param){return;} // compatible all new browsers and IE5 and IE6 var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"); if (xml

认识JQuery,JQuery的优势、语法、多库冲突、JS原生对象和JQuery对象之间相互转换和DOM操作,常用的方法

(一)认识JQuery  JQuery是一个JavaScript库,它通过封装原生的JavaScript函数得到一套定义好的方法    JQuery的主旨:以更少的代码,实现更多的功能 (二)JQuery的优势 1)可以像CSS一样访问和操作DOM 2)修改CSS控制页面外观 3)简化JS代码操作 4)事件代理更加容易 5)动画效果使用方便 6) Ajax技术更加完美 7)大量的基于Jquery的插件 8)可以自定义扩展功能插件 (三)JQuery的语法 格式:$(selector).actio

JavaScript的ajax与jQuery的ajax案例分析

先谈JavaScript的ajax,传输数据为json #############################################JavaScript ajax json########################################### 注意:由于要用到json的JSON.stringify()方法,需要引入json2.js库. html代码: <!DOCTYPE html><html lang="en"><head&g

js原生方式实现jquery中的append()方法

一.在使用jquery时, append() 方法在被选元素的结尾(仍然在内部)插入指定内容 使用方法:$(selector).append(content),content为必需的.规定要插入的内容(可包含 HTML 标签) 二.在使用原生js时,使用appendChild() 方法可向节点的子节点列表的末尾添加新的子节点, 用法:parent.appendChild(child); child没有引号包住,child参数,是node类型.给一个空文档里面动态创建元素,要使用document.