随笔 - 330  文章 - 1  评论 - 472 

【jQuery】(8)---jquery Ajax

jquery ajax

一、AJAX 概述

1、什么是 AJAX?

特点 AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术

通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。

2、Ajax的运行原理

页面发起请求,会将请求发送给浏览器内核中的Ajax引擎,Ajax引擎会提交请求到 服务器端,在这段时间里,客户端可以任意进行任意操作,直到服务器端

将数据返回 给Ajax引擎后,会触发你设置的事件,从而执行自定义的js逻辑代码完成某种页面功能。

原理


二、Jquery Ajax概述

通过JavaScript实现的ajax我这里就不再多讲,其实就是围绕浏览器内内置的Ajax引擎对象进行学习的,要使用js原生的Ajax完成异步操作,有如下几个步骤:

1)创建Ajax引擎对象
2)为Ajax引擎对象绑定监听(监听服务器已将数据响应给引擎)
3)绑定提交地址
4)发送请求
5)接受响应数据

这篇主要讲Jquery 实现AJAX。

1、jQuery中的Ajax

jQuery AJAX 技术常用的方法:ajax() , get() , post() , load() , getscript() 等这几种方法

参数说明

options : 完整 AJAX 请求的所有键/值对选项
        url : 被加载的数据的 URL(地址)
     data : 发送到服务器的数据的键/值对象
callback : 当数据被加载时,所执行的函数
     type : 被返回的数据的类型 (html,xml,json,jasonp,script,text)

在jQuery中,Ajax()方法属于最底层的方法,其它的方法都是对它进一步分装。第2层是load()get(),和post()。第3层是getScript()​getJSON()方法。

下面会一个一个说明。


三、jQuery中Ajax方法详解

1、Ajax()方法

1)通用写法

$.ajax({    
  url: "http://www.oujiong.com", //请求的url地址   
  async: true,                //请求是否异步,默认为异步(true) 
  data: { "id": "value" },    //设置的是请求参数
  dataType: "json",           //用于设置响应体的类型 注意 跟 data 参数没关系!!!    
  type: "GET",   //请求方式    
  beforeSend: function(request) {        
    //请求前的处理
    request.setRequestHeader("Content-type","application/json");
    request.setRequestHeader("Source","100");
    request.setRequestHeader("Token","aaw--wssw-ss...");
  },   
  success: function(data) {        
  //请求成功时处理    
  },   
  complete: function() {        
    //请求完成的处理    
  },    
  error: function() {        
    //请求出错处理    
  }
});

2)、参数详解

url
String
(默认: 当前页地址) 发送请求的地址。

type
String
(默认: "GET") 请求方式 ("POST" 或 "GET"), 默认为 "GET"。
注意:其它 HTTP 请求方法,如 PUT 和 DELETE 也可以使用,但仅部分浏览器支持。

timeout
Number
设置请求超时时间(毫秒)。此设置将覆盖全局设置。

async
Boolean
(默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

data
Object,String
发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。

dataType
String
预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息返回 responseXML 或 responseText,并作为回调函数参数传递,可用值:
"xml": 返回 XML 文档,可用 jQuery 处理。
"html": 返回纯文本 HTML 信息;包含 script 元素。
"script": 返回纯文本 JavaScript 代码。不会自动缓存结果。
"json": 返回 JSON 数据 。
"jsonp": JSONP 格式。使用 JSONP 形式调用函数时,
如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。

success
Function
请求成功后回调函数。这个方法有两个参数:服务器返回数据,返回状态function (data, textStatus) { 
  // data could be xmlDoc, jsonObj, html, text, etc... 
}

2、get()方法

get() 方法通过 HTTP GET 请求从服务器上请求数据。

语法

$.get(URL,data,function(data,status,xhr),dataType) //这里只有URL是必须的 其它三个是可选

示例

<script>
$(document).ready(function(){
  $("button").click(function(){
    $.get("/jquery/demo_test.asp",function(data,status){
      alert("数据:" + data + "\n状态:" + status);
    });
  });
});
</script>

亲自试一试

3、post() 方法

post() 方法通过 HTTP POST 请求从服务器上请求数据。

语法

$.post(URL,data,callback); //URL必须 其它可选

示例

$("button").click(function(){ 
  $.post("demo_test_post.asp", { 
    name:"小小", 
    age:4
  }, 
  function(data,status){ 
    alert("Data: " + data + "\nStatus: " + status); 
  });
});

亲自试一试

4、load() 方法

load() 方法从服务器加载数据,并把返回的数据放入被选元素中。

语法

$('selector').load(URL,data,callback) //URL必须 其它可选

示例

demo_test.txt

<h2>jQuery and AJAX is FUN!!!</h2>
<p id="p1">This is some text in a paragraph.</p>

通过load方法把文件 "demo_test.txt" 的内容加载到指定的 元素中:

$("#div1").load("demo_test.txt");

亲自试一试

总结 其它的也不多讲了,详细的可以参考文档:jQuery API 中文文档


参考

1、jQuery API 中文文档

2、jQuery Ajax—参数详解

3、jQuery Ajax 详解



``` 别人骂我胖,我会生气,因为我心里承认了我胖。别人说我矮,我就会觉得好笑,因为我心里知道我不可能矮。这就是我们为什么会对别人的攻击生气。 攻我盾者,乃我内心之矛(6)。 ```
posted on 2020-04-06 21:16  雨点的名字  阅读(154)  评论(0编辑  收藏