美文网首页
Ajax技术之 $.ajax(第二篇)

Ajax技术之 $.ajax(第二篇)

作者: locky丶 | 来源:发表于2019-04-30 15:17 被阅读0次

今天汇总下Jquery的ajax请求,这是Ajax技术的第二篇。

语法

$(document).ready(function () {
    $.ajax({
        url: "http://jsonplaceholder.typicode.com/posts/1",
        type: "get",
        data: '',
        beforeSend(xhr) {
            console.log('数据请求前:', xhr)
        },
        success(result,status,xhr) {
            console.log(result.body)
        },
        error(xhr, status, error) {
            console.log('xhr:', xhr)
            console.log('状态:', status)
            console.log('报错信息:', error)
        }
    })
})

jquery的ajax()方法写入的参数是一个整合的对象,对象中有很多属性,我们常用的有如下:
type, url, data, dataType, contentType, timeout,
beforeSend(xhr) , success(result,status,xhr), error(xhr,status,error)

post

post与get请求类似,就是多了一个data对象的数据提交。

$.ajax({
    url: "postUrlAddress",
    type: "post",
    data: {
        userId: 25
    },
    async: true,
    beforeSend(xhr) {
        console.log('数据请求前')
    },
    success(res) {
        console.log(res)
    },
    error(error) {
        console.log('报错信息:', error)
    }
})

封装

$.ajax使用频繁,每次都写这么长的代码太啰嗦,于是我们自己封装下。

let postFetch = function (params) {
    $.ajax({
        url: params.url,
        type: "post",
        data: params.dataObj,
        async: true,
        headers: {
            "token": '_this.getLocalStorage("token")'
        },
        beforeSend(xhr) {
            console.log('数据请求前')
        },
        success(res) {
            if (res.code === 403) {
                return
            } else if (res.code === 0) {
                console.log(res.msg)
            } else {
                params.callback(res)
            }
        },
        error(error) {
            console.log('报错信息:', error)
        }
    })
}

调用方法

postFetch({
    url: 'requestUrl',
    dataObj: {
        name: 'mark'
    },
    callback(res) {
        $('#showTitle').html(res.name + res.id)
    }
})

$.when() 方法

.when()可以有效改善异步的回调地狱的问题。 之前我们的要获取请求到的数据在做处理,通常是将函数写在.ajax()的callback(res)函数中,当业务比较复杂时,代码的可读性就变得非常差。$.when()的出现很好的解决了该问题。

$(function () { 
    var d1 = $.Deferred();
    var d2 = $.Deferred();
    $.when( d1, d2 ).done(function ( v1, v2 ) {
        alert( v1 ); // "Fish"
        alert( v2 ); // "Pizza"
    });
    d1.resolve( "Fish" );
    d2.resolve( "Pizza" );
})

相关文章

  • Ajax技术之 $.ajax(第二篇)

    今天汇总下Jquery的ajax请求,这是Ajax技术的第二篇。 语法 jquery的ajax()方法写入的参数是...

  • Ajax技术 2018-04-07

    AJAX技术 Ajax技术的概述 1.ajax的技术:Asynchronous JavaScript and XM...

  • js之AJAX复习

    异步交互和同步交互 什么是Ajax? Ajax的工作原理。 Ajax包含的技术: Ajax的缺陷: Ajax的核心...

  • PHP全栈学习笔记13

    php与ajax技术 web2.0的到来,ajax逐渐成为主流,什么是ajax,ajax的开发模式,优点,使用技术...

  • PHP全栈学习笔记13

    php与ajax技术 web2.0的到来,ajax逐渐成为主流,什么是ajax,ajax的开发模式,优点,使用技术...

  • Ajax 笔记

    Ajax 使用 创建动态网页的技术 Ajax 介绍 AJAX = Asynchronous JavaScript ...

  • 8.18兄弟会

    ajax ajax 简介 Ajax 由 HTML、JavaScript™ 技术、DHTML 和 DOM 组成,这一...

  • 前端(十七)

    ajax:ajax技术的目的是让javascript发送http请求,与后台通信,获取数据和信息。ajax技术的原...

  • jQuery ajax 和 正则

    ajax ajax技术的目的是让javascript发送http请求,与后台通信,获取数据和信息。ajax技术的原...

  • 前端

    ajax:ajax技术的目的是让javascript发送http请求,与后台通信,获取数据和信息。ajax技术的原...

网友评论

      本文标题:Ajax技术之 $.ajax(第二篇)

      本文链接:https://www.haomeiwen.com/subject/hbemnqtx.html