什么是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

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

  1. JS原生ajax与Jquery插件ajax深入学习

    序言: 近来随着项目的上线实施,稍微有点空闲,闲暇之时偶然发现之前写的关于javascript原生xmlHttpRequest ajax方法以及后来jquery插件ajax方法,于是就行了一些总结,因 ...

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

    (一)认识JQuery  JQuery是一个JavaScript库,它通过封装原生的JavaScript函数得到一套定义好的方法    JQuery的主旨:以更少的代码,实现更多的功能 (二)JQue ...

  3. AJAX初识(原生JS版AJAX和Jquery版AJAX)

    一.什么是JSON 1.介绍 JSON独立于语言,是一种与语言无关的数据格式. JSON指的是JavaScript对象表示法(JavaScript Object Notation) JSON是轻量级的 ...

  4. 原生js实现ajax与jquery的ajax库,及json

    这是一篇笔记博客, Ajax: 和服务器进行数据交换(异步) 用js实现复杂的原理:用于发送请求的对象在不同的浏览器中是不同的 同源策略:ajax发送请求的url地址与服务器地址必须是同一域名,协议, ...

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

    在实际的业务逻辑中,经常是与时间相关的,而前端能获得的时间有两个:客户端的时间,服务器的时间. 客户端时间通过 javascript中的Date对象可以获取,如 var dt = new Date() ...

  6. js源码 模仿 jquery的ajax的获取数据(get,post )的请求封装

    function ajax(obj){ // 默认参数 var defaults = { type : 'get', data : {}, url : '#', dataType : 'text', ...

  7. JS原生方法实现jQuery的ready()

    浏览器加载页面的顺序: 1. 解析HTML结构 2. 加载外部脚本和样式表文件 3. 解析并执行脚本代码 4. 构造HTML DOM模型==ready() 5. 加载图片等组件 6. 页面加载完毕== ...

  8. js事件之event.preventDefault()与event.stopPropagation()用法区别

    event.preventDefault()用法介绍 该方法将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作).例如,如果 type 属性是 "submit" ...

  9. jquery中$.ajax方法提交表单

    function postdata(){                        //提交数据函数 $.ajax({                                //调用jqu ...

随机推荐

  1. 【C++札记】标准模板库string

    介绍 c++中字符串string对象属于一个类,内置了很多实用的成员函数,操作简单,方便更直观. 命名空间为std,所属头文件<string> 注意:不是<string.h>. ...

  2. ARTS 第十周打卡

    Algorithm : 做一个 leetcode 的算法题 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: [&quo ...

  3. Python数值日期时间笔记

    数值: 格式化 小数位的处理 随机数: random.choice() 序列中随机选择一个值 random.sample() 获取指定数目的序列 random.shuffle() 打乱顺序 rando ...

  4. k8s基础环境搭建

    环境准备 服务器之间时间同步 1. 关闭防火墙 systemctl stop firewalld setenforce 0 2. 设置yum源   三台机器都要设置一个master两个node节点 下 ...

  5. java 获取json字符串中key对应的值

    用到了Gson的JsonParser maven项目引入 <dependency> <groupId>com.google.code.gson</groupId> ...

  6. Bootstrap3 CDN 使用手册

    一.一般功能 <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.css" rel=" ...

  7. WebSocket协议探究(三):MQTT子协议

    一 复习和目标 1 复习 Nodejs实现WebSocket服务器 Netty实现WebSocket服务器(附带了源码分析) Js api实现WebSocket客户端 注:Nodejs使用的Socke ...

  8. .NET CORE 下 MariaDB DBfirst 生成model层 并配置连接参数

    1.首先新建一个类库,然后通过NuGet安装下面三个包 2.然后在程序包管理器控制台中运行以下代码(ps:记得默认项目选择刚才新建的项目,同时设置为启动项) server 是服务器地址 databas ...

  9. RANSAC拟合算法

    最小二乘法只适合与误差较小的情况.试想一下这种情况,假使需要从一个噪音较大的数据集中提取模型(比方说只有20%的数据时符合模型的)时,最小二乘法就显得力不从心了. 算法简介 随机抽样一致算法(RANd ...

  10. Image Processing and Analysis_8_Edge Detection:Design of steerable filters for feature detection using canny-like criteria ——2004

    此主要讨论图像处理与分析.虽然计算机视觉部分的有些内容比如特 征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以 及它们的出处,没有把它们纳入到图像处理与分析中来.同样,这里面也有 ...