jQuery.ajax( [settings ] )
- 比较老的jQuery的ajax写法
$.ajax({
url: '/hello',
method: 'get',
dataType: 'json',
data: {
a: 1,
b: 2
},
success: function(ret){
console.log(ret)
},
error: function(){
console.log('error')
}
})
- 另外一种比较新的写法
$.ajax({
url: '/hello',
method: 'get',
dataType: 'json',
data: {
a: 1,
b: 2
}
}).done(function(ret){
console.log(ret)
}).error(function(){
console.log('error')
})
- ajax的简写
$.get('hello',{}).done(function(){
}).fail(function(){
})
- 方法提供了几个常用的setting
-
async:
默认设置下,所有请求均为异步请求(也就是说这是默认设置为 true )。如果需要发送同步请求,请将此选项设置为 false -
beforeSend:
请求发送前的回调函数,用来修改请求发送前jqXHR对象,此功能用来设置自定义 HTTP 头信息,等等。该jqXHR和设置对象作为参数传递 -
cache:
如果设置为 false ,浏览器将不缓存此页面。注意: 设置cache为 false将在 HEAD和GET请求中正常工作。它的工作原理是在GET请求参数中附加"_={timestamp}" -
context:
这个对象用于设置Ajax相关回调函数的上下文。 默认情况下,这个上下文是一个ajax请求使用的参数设置对象 -
data:
发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后面,POST请求作为表单数据 -
headers:
一个额外的{键:值}对映射到请求一起发送。此设置会在beforeSend 函数调用之前被设置 ;因此,请求头中的设置值,会被beforeSend 函数内的设置覆盖 -
method:
HTTP 请求方法 (比如:"POST", "GET ", "PUT",1.9之前使用“type”)
jQuery实现jsonp
在jquery中也有对jsonp的封装,不过jquery把其放到了ajax中,不明白为什么,毕竟这东西和ajax不太一样。
- 主要设置:dataType: 'jsonp', jsonp:'callback'
function getBooks(){
$.ajax({
type:'get',
url:'http://test.com/bookservice.php',
dataType:'jsonp',
jsonp:'callback',
jsonpCallback:'displayBooks'
});
}
jQuery.param(obj)
得到的是一个序列化后的对象。
创建一个数组,一个普通的对象,或一个jQuery对象的序列化表现形式,用于URL查询字符串或Ajax请求。如果传递一个JQuery对象,它应该包含输入元素(input,textarea)的名称/值属性。
var obj = {a:1,b:2}
$.param(obj) //‘a=1&b=2’
.serializa()
将用作提交的表单元素的值编译成字符串。这个方法不接受任何参数。
$('form').on('submit',function(e){
e.preventDefault()
console.log($(this).serialize())
})
//当点击提交的时候,form表单中的k=value值就会
网友评论