$.ajax()
$.ajax() 方法概述
作用:发送Ajax请求。
- type:请求方式,可以是'get'或者'post'
- url:请求地址
- data: 向服务器端发送的请求参数,可以传递一个对象,会被转换为“参数名=参数&参数名=参数”的字符串参数值,或者直接传递字符串参数值,如
data: 'name=zhangsan&age=20'
。无论是哪种形式都会以字符串参数的形式发送 - contentType:告诉
$.ajax
客户端想要向客户端传递的参数类型,默认值是'application/x-wwww-form-urlencoded'
,如果要传递json格式的参数可以设置为contentType:'application/json'
,然后在data属性中传递JSON字符串,也就是在原有的对象基础上,使用JSON.stringify()
转换。 - beforeSend:可以在请求发送前执行一些操作,值是一个函数,将需要执行的操作写在函数内部,这个函数会在请求被发送之前调用。如:对请求参数进行格式上的验证,如果验证不通过可以返回
return
阻止请求发送;在加载图片时可以显示转圈圈的等待图片,在加载完成后隐藏这个元素,可以提高用户体验。 - success:在请求成功,服务器端返回数据之后就会被调用,它有一个形参,就是服务器端返回的数据。要注意
$.ajax
会根据响应头中设置的返回数据类型,自动将服务器端数据转换为对应的类型。如:服务器返回JSON字符串,$.ajax
会将JSON字符串转换为JSON对象,不需要再使用JSON.parse()
进行转换。 - error: 请求失败时会进入这个函数内部,函数接收ajax对象做为参数,可以在这个对象中获取错误信息,并根据这个信息进行错误处理。
$.ajax({
type: 'get',
url: 'http://www.example.com",
data: { name: 'zhangsan', age: '20' },
contentType: 'application/x-wwww-form-urlencoded',
beforeSend: funciton () {
return false
},
success: function (response) {},
error: function (xhr) {}
});
serialize方法
不论向data属性中传递的参数是对象类型还是字符串类型,参数的格式都需要我们自己来拼接。需要获取到表单元素控件,再获取控件中用户输入的内容,再将用户输入的表单内容拼接成需要的格式。拼接的过程比较繁琐,之前学习的formData就可以解决这个问题,不过formData对象是html5提供的,存在兼容问题。
- serialize是jQuery提供的方法。
作用:将表单中的数据自动拼接成字符串类型的参数
var params = $('#form').serialize();
// name=zhangsan&age=30
$.ajax()方法概述
作用:发送jsonp请求。
$.ajax({
url: 'http://www.example.com',
// 指定当前发送jsonp请求
dataType: 'jsonp',
// 修改callback参数名称
jsonp: 'cb',
// 指定函数名称
jsonCallback: 'fnName',
success: function (response) {}
})
.post()方法概述
作用:.post方法用于发送post请求。
$.get('http://www.example.com', {name: 'zhangsan', age: 30}, function (response) {})
$.post('http://www.example.com',{name:'lisi', age: 22}, funciton (response) {})