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)。
```