jQuery中的ajax

701 阅读1分钟

$.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) {}
})

.get().get()、.post()方法概述

作用:.get方法用于发送get请求,.get方法用于发送get请求,.post方法用于发送post请求。

$.get('http://www.example.com', {name: 'zhangsan', age: 30}, function (response) {})
$.post('http://www.example.com',{name:'lisi', age: 22}, funciton (response) {})