// jQuery中封装了3种 ajax 请求方式
// 1, get请求方式
// 2, post请求方式
// 3, 综合请求方式
// 1, get请求方式
// 语法 : $().get( {以对象的形式,定义4个参数} )
// 只有 url地址,是必要参数,其他可以不写
// get方式,不能post方式请求,不能跨域
/*
$().get({
url:‘请求地址‘,
data:携带的参数 对象形式
dataType:默认值是string,以字符串的形式解析响应体
可以设定 ‘json‘ 以 json串形式解析响应体
success:请求成功时执行的回调函数
})
*/
// 2, post请求方式
// 语法 : $.post( {以对象的形式,定义4个参数} )
// 只有 url地址,是必要参数,其他可以不写
// post方式,不能get方式请求,不能跨域
/*
$.post({
url:‘请求地址‘,
data:携带的参数 对象形式
dataType:默认值是string,以字符串的形式解析响应体
可以设定 ‘json‘ 以 json串形式解析响应体
success:请求成功时执行的回调函数
})
*/
// 3, 混合方式
// $.ajax(对象的形式定义参数)
/*
$.ajax({
url 请求地址,必须写
type/method : 请求方式 默认是 get
data : {} 携带的参数
dataType : 响应体格式,默认是 text 字符串
json 自动解析响应体中的json字符串
jsonp 以jsonp的形式完成跨域请求
success:function(){} 请求成功的回调函数
jsonp:回调函数名称存储的键名
不常用的参数:
async : 定义是否异步执行ajax请求
默认值是 true 默认是异步请求
error : 请求失败时,执行的回调函数
timeout : 设定请求超时
超过设定的会认为是请求失败
cache : 设定是否缓存 只对get请求起作用
context: 指定 执行函数中的this指向
})
*/
// 4, 混合方式执行跨域请求
// 代理方式完成跨域
// 必须要设置好代理
// 设定请求地址时,使用 代理 来设定请求地址
// 其他的请求参数设定与正常形式一样
// 5, 混合方式执行跨区请求
// jsonp方式完成跨域
// ajax 的jsonp方式完成跨域,会自动定义一个函数名称并且自动传参,我们自己不用定义
// 只需要将dataType 定义为 jsonp 格式
// 会自动以jsonp的格式,对跨域完成请求
// 要想通过 jQuery 封装的 ajax 完成 jsonp 请求
// 1, 请求中,必须设定参数
// 需要将dataType 设定为 jsonp 格式
// dataType 为了完成跨域,不能设定成json,不会自动解析json串格式的响应内容
// 需要设定 jsonp: ‘fun‘, 传参函数名称的 键值对 键名
// 在 fun 中 会 存储 jQuery自动封装的函数名称
// 还会自动传参 当前时间戳
//
// 2, php后端程序 , 必须是以函数的形式,返回内容
// 返回的响应体是函数的实参
// php后端返回的结果,必须是设定好的数据类型结果,如果是json字符串的格式
// 必须要在 回调函数中单独处理响应结果
// 总结:
// 1, jsonp 只能是 get 请求方式
// 2, jQuery会在ajax中自动封装,函数名称和时间戳,以参数的形式传参给后端PHP程序
// 3, 设定 ajax 请求 必修要
// dataType,定义为 jsonp
// jsonp , 传参函数名称的 键名 ,后端程序可以接收存储函数名称
// 4, 时间戳不用定义 键名 , jQuery自动定义键名 _
// 5, 应为 dataType 定义成了 jsonp
// 如果后端返回结果是 json串格式 内容,必须要在回调函数中独立处理转化为 对应数据类型
// 6, 后端程序,需要通过 jsonp 定义的键名 存储 函数函数名称
// 以函数参数的形式,返回响应体内容