jQuery 底层对 AJAX 实现进行了封装,这使得我们在进行 AJAX 操作时,不必像原生 JS 中那么复杂
$.get()
, $.post()
, $.ajax()
首先,得有 Web 服务器,如,能够通过浏览器去执行 HTML 和 Python
/* 发送 ajax 请求1. url2. 可选 发送 get 请求时携带的参数3. 可选 回调函数,请求完之后做什么事4. 可选 返回的数据类型 json*/ $.get(url, {请求的参数}, function(data){}, "json");
$.post(url, {请求的参数}, function(data){}, "json");
$.ajax({ url:"/cgi-bin/5.py", // 当前请求的 url 地址 type:"get", // 当前请求的方式 get 或 post data:{id:100,username:"zhangsan"}, // 请求时发送的参数 dataType:"json", // 返回的数据类型 success:function(data){ // ajax 请求成功后执行的代码 console.log(data); }, error:function(){ // ajax 执行失败后执行的代码 alert("ajax 执行错误"); }, timeout:2000, // 设置当前请求的超时时间毫秒,必须是异步请求才会生效 async:true // 是否异步,true 为异步,false 为同步});
/* 设置 ajax 的全局配置 async:false 设置当前请求为同步*/$.ajaxSetup({ async:false});
AJAX 默认是异步请求
同步请求,发 AJAX 请求发出去后必须等待它的结果,返回后才能继续往下执行
除非有特殊情况,如,必须等 AJAX 的结果返回后才能做处理的,才用同步
AJAX 是无刷新请求服务器,所以我们在浏览器中感觉不到,也看不到 AJAX 的具体请求和执行情况,因此,我们需要借助浏览器的调试工具 F12 进行查看
AJAX 的请求是基于 HTTP 协议的,这就需要在打开带有 AJAX 的 HTML 时使用 HTTP 协议
AJAX 方法,会创建一个对象 XMLHttpRequest;在 AJAX 的方法中使用的 $(this) 代表 AJAX 的对象
var tom = { name:'tom', age:18};
{ "name":'tom', "age":18}
与 JSON 对象(JS对象)不同的是,JSON 数据格式的属性名称需要用双引号引起来,用单引号或者不用引号均会导致数据读取错误
JSON 的另外一个数据格式是数组,和 JS 中的数组字面量相同
['tom', 18, 'programmer']