常用的ajax参数有url, data, type,预期返回类型dataType, 发送到服务器的数据编码类型Content-Type
需要注意的有:
- url: 要求为String类型,发送请求的地址
- type: 要求为String类型, 请求方式(post或get)默认为get
- timeout:要求为Number类型参数,设置请求超时时间(毫秒),此设置覆盖$.ajaxSetup()方法的全局设置
- async: 要求为Boolean类型参数,默认设置为true,请求均为异步请求, 如果需要发送同步请求,将此项设置为false.tips:同步请求将锁住浏览器,用户其他操作必须等待请求完成才可以执行
- cache: 要求为Boolean类型参数, 默认为true(当dataType为script时,默认为false),设置为false将不会从浏览器缓存中加载请求信息
- data:要求为Object和String类型参数,发送到服务器的数据,如果已经不是字符串,将自动转换为字符串格式.get请求中将附加在url后.
- dataType: 要求为String类型参数,预期服务器返回的数据类型,如果不指定,JQuery将自动根据http包mime信息返回responseXML或responseText,并作为回调函数参数传递.可用类型如下
xml: 返回XML文档,可用JQuery处理
html:返回纯文本HTML信息,包含的script标签会在插入DOM时只需
script:返回纯文本JavaScript代码,不会自动缓存结果,除非设置了cache参数.注意在远程请求时(不在同一个域下),所有Post请求都将转为get请求
json:返回JSON数据.
jsonp:JSONP格式.使用SONP形式调用函数时,例如myurl?callback=?,JQuery将自动替换后一个"?"为正确的函数名,以执行回调函数
text:返回纯文本字符串
- beforeSend:要求为Function类型的参数,发送请求前可以修改XMLHttpRequest对象的函数, 列如添加自定义HTTP头,在beforeSend中如果返回false可以取消本次ajax请求.XMLHttpRequest对象是唯一的参数.
- complete:要求为Function类型的参数,请求完成后调用的回调函数(请求成功或失败时均调用).参数:XMLHttpRequest对象和一个描述成功请求类型的字符串
function(XMLHttpRequest, textStatus) {
this; // 调用本次ajax请求时传递的options参数
}
- success: 要求为Function类型的参数,请求成功后调用的回调函数,有两个参数.1. 由服务器返回,并根据dataType参数进行处理后的数据.2. 描述状态的字符串
function(data, textStatus) {
// data可能是xmlDoc,jsonObj, html,text等
this; // 调用本次ajax请求时传递的options参数
}
- error:要求为Function类型的参数, 请求失败时被调用的函数, 该函数有3个参数,即XMLHttpRequest对象,错误信息,捕获的错误对象(可选).ajax事件函数如下:
function(XMLHttpRequest, textStatus, errorThrown) {
// 通常情况下textStatus和errorThrown只有其中一个包含信息
this; // 调用本次ajax请求时传递的options参数
}
- contentType:要求为String类型的参数,当发送信息至服务器时,内容编码类型默认为"application/x-www-form-urlencoded",该默认值适合大多数应用场景
- ifModified:要求为Boolean类型的参数,默认为false。仅在服务器数据改变时获取新数据。服务器数据改变判断的依据是Last-Modified头信息。默认值是false,即忽略头信息。
js请求两个地方要注意
第一请求的Header中添加Content-Type和token
第二ajax的dataType服务器返回类型设置为json,请求服务器的data:JSON.stringify([dicPar])
而不是jsonArray,因为jsonArray,记
[{
“DbCode”: “CPFD”
}]
没有Key所以直接传jsonArray请求参数为undefined=
正确的方式:
$.ajax({
headers:tokenPar,
url:preurl,
data:JSON.stringify([dicPar]),
dataType:‘json’,
type:‘POST’,
success:function(res){})
原请求方式:
$.ajax({ headers:[],
url:url,
data:dicPar,
type:‘POST’,’
success:function(res){})
请求成功后 解析的时候也要注意:如果服务器返回的是str那么需要json解析下JSON.parse(result);
综论
ajax返回3种数据格式:html文本格式,xml通用格式,json格式,
数据类型:整数,字符串,数组,对象