文章目录
- 一、Ajax
- 二、load
- 三、ajax(参数),get,set
- $.ajax
- $.ajax的get、post简写形式
- 四、ajax全部方法参考 ☆
一、Ajax
- AJAX 是与服务器交换数据的技术,它在不重载全部页面的情况下,实现了对部分网页的更新。
- AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML)
- 如果没有 jQuery,AJAX 编程还是有些难度的。编写常规的 AJAX 代码并不容易,因为不同的浏览器对 AJAX 的实现并不相同。这意味着你必须编写额外的代码对浏览器进行测试。不过,jQuery 团队为我们解决了这个难题,我们只需要一行简单的代码,就可以实现 AJAX 功能
- 仅介绍常用Ajax方法:load、ajax、get、post
更多请参考:菜鸟教程 - 总有你想要的
二、load
从服务器加载数据,并把返回的数据放入被选元素中。
$(selector).load(URL,data,callback);
URL:必须,规定希望加载的 URL
data:可选,规定与请求一同发送的查询字符串键/值对集合
callback:可选,回调函数。
callback的可选参数:
- responseTxt - 包含调用成功时的结果内容
- statusTXT - 包含调用的状态
- xhr - 包含 XMLHttpRequest 对象
$("#div1").load("demo_test.txt");
// 把 "demo_test.txt" 文件中 id="p1" 的元素的内容,加载到指定的 <div> 元素中
$("#div1").load("demo_test.txt #p1");
// 在 load() 方法完成后显示一个提示框。如果 load() 方法已成功,则显示"外部内容加载成功!",而如果失败,则显示错误消息
$("button").click(function(){$("#div1").load("demo_test.txt",function(responseTxt,statusTxt,xhr){if(statusTxt=="success")alert("外部内容加载成功!");if(statusTxt=="error")alert("Error: "+xhr.status+": "+xhr.statusText);});
});
tips:为了避免多页面情形下的代码重复,可以利用 load() 方法,将重复的部分(例如导航栏)放入单独的文件
三、ajax(参数),get,set
$.ajax
所有的 jQuery AJAX 方法都使用 ajax() 方法。该方法通常用于其他方法不能完成的请求。即其他衍生出的get,post,load,getJSON等等均可以由ajax()方法通过参数实现。
ajax()常用参数(框架):
$.ajax(type:"POST", // GET,POSTurl:"/index.html", // 路由async:true, // 异步吗?默认是true,尽量少用同步data:{ // 规定要发送到服务器的数据id:"1",name:"Jack,Rose",kinds:"Lover"},// 成功回调函数success:function(data,status){Console.log("请求成功!"); // 控制台输出Console.log("data:");Console.log(data);Console.log("status:");Console.log(status);}
);
ajax方法的所有参数:
ajax参数 | 值/描述 |
---|---|
async | 布尔值,表示请求是否异步处理,默认是 true。 |
beforeSend(xhr) | 发送请求前运行的函数。 |
cache | 布尔值,表示浏览器是否缓存被请求页面。默认是 true。 |
complete(xhr,status) | 请求完成时运行的函数(在请求成功或失败之后均调用,即在 success 和 error 函数之后)。 |
contentType | 发送数据到服务器时所使用的内容类型。默认是:“application/x-www-form-urlencoded”。 |
context | 为所有 AJAX 相关的回调函数规定 “this” 值。 |
data | 规定要发送到服务器的数据。 |
dataFilter(data,type) | 用于处理 XMLHttpRequest 原始响应数据的函数。 |
dataType | 预期的服务器响应的数据类型。 |
error(xhr,status,error) | 如果请求失败要运行的函数。 |
global | 布尔值,规定是否为请求触发全局 AJAX 事件处理程序。默认是 true。 |
ifModified | 布尔值,规定是否仅在最后一次请求以来响应发生改变时才请求成功。默认是 false。 |
jsonp | 在一个 jsonp 中重写回调函数的字符串。 |
jsonpCallback | 在一个 jsonp 中规定回调函数的名称。 |
password | 规定在 HTTP 访问认证请求中使用的密码。 |
processData | 布尔值,规定通过请求发送的数据是否转换为查询字符串。默认是 true。 |
scriptCharset | 规定请求的字符集。 |
success(result,status,xhr) | 当请求成功时运行的函数。 |
timeout | 设置本地的请求超时时间(以毫秒计)。 |
traditional | 布尔值,规定是否使用参数序列化的传统样式。 |
type | 规定请求的类型(GET 或 POST)。 |
url | 规定发送请求的 URL。默认是当前页面。 |
username | 规定在 HTTP 访问认证请求中使用的用户名。 |
xhr | 用于创建 XMLHttpRequest 对象的函数。 |
$.ajax的get、post简写形式
- $.get —— 从指定的资源请求数据
$.get(URL,callback);
URL:必选,访问的地址
callback:可选
回调参数:- data —— 可选,被请求页面的内容
- status —— 可选,请求的状态
- $.post —— 通过 HTTP POST 请求向服务器提交数据
$.post(URL,data,callback);
URL:必选,访问的地址
data:可选,规定连同请求发送的数据
callback:可选
回调参数:- data —— 可选,被请求页面的内容
- status —— 可选,请求的状态
$("button").click(function(){$.post("www.baidu.com",{name:"post请求",time:"2019/12/20"},// post请求成功后调用此函数function(data,status){alert("数据: \n" + data + "\n状态: " + status);});
});
tips:
GET 和 POST 方法的区别:
1、发送的数据数量
在 GET 中,只能发送有限数量的数据,因为数据是在 URL 中发送的。
在 POST 中,可以发送大量的数据,因为数据是在正文主体中发送的。
2、安全性
GET 方法发送的数据不受保护,因为数据在 URL 栏中公开,这增加了漏洞和黑客攻击的风险。
POST 方法发送的数据是安全的,因为数据未在 URL 栏中公开,还可以在其中使用多种编码技术,这使其具有弹性。
3、加入书签中
GET 查询的结果可以加入书签中,因为它以 URL 的形式存在;而 POST 查询的结果无法加入书签中。
4、编码
在表单中使用 GET 方法时,数据类型中只接受 ASCII 字符。
在表单提交时,POST 方法不绑定表单数据类型,并允许二进制和 ASCII 字符。
5、可变大小
GET 方法中的可变大小约为 2000 个字符。
POST 方法最多允许 8 Mb 的可变大小。
6、缓存
GET 方法的数据是可缓存的,而 POST 方法的数据是无法缓存的。
7、主要作用
GET 方法主要用于获取信息。而 POST 方法主要用于更新数据。
四、ajax全部方法参考 ☆
菜鸟教程 - AJAX方法