【jQuery】jQuery中的Ajax

本文介绍jQuery中异步加载HTML、JSON、JS等格式数据的方法,包括load()、getJSON()、getScript()及get()函数的使用,并探讨了如何通过$.post()及$.ajax()请求动态数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

加载异步(静态)数据

load()  - 加载html格式数据

语法格式为:

load(url, [data], [callback])


参数url为被加载的页面地址,可选项[data]参数表示发送到服务器的数据,其格式为 key / value ,另一个可选项 [callback] 表示参数加载成功后,返回至加载页的回调函数。

全局函数 - getJSON() - 加载json格式数据

用于调用JSON格式的数据,其调用的语法格式为:

$.getJSON(url, [data], [callback])

参数url表示请求的地址,可选项[data]参数表示发送到服务器的数据,其格式为key/value,可选项[callback]参数表示加载成功时执行的回调函数。

例如:

$("#Button1").click(function(){
    $.getJSON("userinfo.json", function(data){
        $("#divTip").empty();
        var strHTML = "";
        $.each(data, function(InfoIndex, Info){
            strHTML += "姓名" + Info["name"]  + "";
            strHTML += "性别" + Info["sex"]   + "";
            strHTML += "邮箱" + Info["email"] + "";
        })

        $("#divTip").html(strHTML);
    })
})

userinfo.json:

{
  {
     "name": "1",
     "sex":"2",
     "email":"3"
  },
  {
    "name":"4",
    "sex":"5",
    "email":"6"
  }
}

全局函数 - getScript() - 加载js格式数据

用于获取.js文件的内容。在jQuery中,通过全局函数getScript()加载.js文件后,不仅可以像加载页面片段一样轻松地注入脚本,而且所注入的脚本自动执行。

其调用格式如下:

$.getScript(url, [callback])

url参数为等待加载的JS文件地址,可选项[callback]参数表示加载成功时执行的回调函数。

例如:

$("Button1").click(function(){
    $.getScript("userinfo.js");
})

userinfo.js

var data = [
  {
    "name":"1",
    "sex":"2",
    "email":"3"
  },
  {
    "name":"4",
    "sex":"5",
    "email":“6”
  }
];

var strHTML = "";
$.each(data, function(){
    strHTML += "姓名" + this["name"]  + "";
    strHTML += "性别" + this["sex"]   + "";
    strHTML += "邮箱" + this["email"] + "";
})

$("#divTip").html(strHTML);

全局函数 - get() - 加载html, xml, js, json, text等格式数据

调用的语法格式为:

$.get(url, [data], [callback], [type])

参数url表示等待加载的数据地址,可选项[data]参数表示发送到服务器的数据,其格式为key/value,可选项[callback]参数表示加载成功时执行的回调函数,可选项[type]参数表示返回数据的格式,如html, xml, js, json, text等


请求服务器(动态)数据

$.get()请求数据

客户端向服务器传递参数时,使用的格式是{key0:value0, key1:value1, ... ... },如果参数的值是中文格式,必须通过使用encodeURL()来进行转码,在客户端接受时,使用decodeURL进行解码即可。

函数格式参见上一节。


$.post()请求数据

$.post()也是带参数向服务器发出数据请求。全局函数$.post()与$.get()在本质上没有太大的区别,所不同的是,GET方式不适合传递数据量较大的数据,同时,其请求的历史信息会保存在浏览器的缓存中。

$.post()函数调用的语法格式如下:

$.post(url, [data], [callback], [type])

serialize()序列化表单

该方法的功能将所选择的DOM元素转换成能随AJAX传递的字符串,即序列化所选的DOM元素。

例如:

$.post("userinfo.aspx", 
       $("#frmuserinfo").serialize(),
       function(data){... ...})


serialize()方法自身有很多的不足,如表单中有多项被选中时,该方法只能传递一项的值,因此,在选择传递参数时,须慎重考虑。


$.ajax()方法

$.ajax()的基本概念

在jQuery中,$.ajax()方法是最底层的方法,也是功能最强的方法

其调用的语法格式为:

$.ajax([options])

可选项参数[options]为$.ajax()方法中的请求设置,其格式为 key / value ,即包含发送请求的参数,也含有服务器响应后回调的数据。

$.ajax()方法中的参数列表:

参数名类型描述
urlString发送请求的地址(默认为当前页面)
typeString数据请求的方式(post 或 get),默认为get
dataString或Object发送到服务器的数据,如果不是字符串则自动转换成字符串格式,如果是get请求方式,那么,该字符串将附在url的后面
dataTypeString服务器返回的数据类型,如果没有指定,jQuery将自动根据HTTP包MIME信息自动判断,服务器返回的数据根据自动判断的结果进行解析,传递给回调函数,其可用类型为:
html:返回纯文本的HTML信息,包含的Script标记会在插入页面时被执行
script:返回纯文本JavaScript代码
text:返回纯文本的字符串
xml:返回可被jQuery处理的XML文档
json:返回JSON格式的数据
beforeSendFunction该函数用于发送请求前修改XMLHttpRequest对象,其中的参数就是XMLHttpRequest对象,由于该函数本身是jQuery事件,因此,如果函数返回false,则表示取消本次事件
completeFunction请求完成后调用的函数,该函数无论数据发送成功或失败都会调用,其中有两个参数,一个是XMLHttpRequest对象,另外一个是strStatus,用于描述成功请求类型的字符串
successFunction请求成功后返回的回调函数,该函数有两个函数,一个是根据参数datType处理后服务器返回的数据,另外一个是strStatus,用于描述状态的字符串
errorFunction请求失败后调用的函数,该函数有三个参数,第一个是XMLHttpRequest对象,第二个是出错信息strError,第三个是捕捉到的错误对象strObject
timeoutNumber请求超时的时间(毫秒)
globalBoolean是否响应全局事件,默认是true,表示响应,如果设置成false,表示是不响应
asyncBoolean是否为异步请求,默认为true,表示是异步,如果设置成false,表示是同步请求
cacheBoolean是否进行页面缓存,true表示进行缓存,false表示不进行页面缓存

$.ajaxSetup()设置全局Ajax

在jQuery中,可以使用$.ajaxSetup()方法设置全局性的ajax默认选项,一次设置,全局有效。

调用格式为:

$.ajaxSetup([options])

可选参数[options]是一个对象,通过该对象可以设置$.ajax()方法中的参数。


Ajax中的全局事件

jQuery中的 6 个全局Ajax事件如下:

事件名称参数功能描述
ajaxComplete(callback)callbackAjax请求完成时执行函数
ajaxError(callback)callbackAjax请求发送错误时执行函数,其中捕捉到的错误可以作为最后一个参数进行传递
ajaxSend(callback)callbackAjax请求发送前执行函数
ajaxStart(callback)callbackAjax请求开始时执行函数
ajaxStop(callback)callbackAjax请求结束时执行函数
ajaxSuccess(callback)callbackAjax请求成功时执行函数

在jQuery中,所有的全局事件都是以XMLHttpRequest对象和设置对象作为参数传递给回调函数。

在事件绑定时,Ajax中的全局事件可以绑定在页面的任何一个元素中





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值