如今,开发人员倾向于放弃jQuery及其用于DOM操作和Ajax请求的便捷方法,从而使其广受欢迎。关于Ajax请求,Fetch API或Axios库现在是执行异步操作的更流行的工具。也就是说,jQuery仍然非常活跃,并且为全球近70,000个网站提供支持。这意味着在开发人员的日常工作中,知道如何使用jQuery仍然很有价值,例如支持遗留代码库或维护使用jQuery作为重要依赖项的项目。
Ajax是一项技术,允许开发人员发出异步HTTP请求,而无需刷新整个页面。为了使该过程不像使用纯JavaScript那样麻烦,开发人员多年来一直在使用jQuery库。在我的文章介绍到jQuery的速记方法阿贾克斯,我讨论了一些jQuery的最常用的Ajax的速记方法:$.get(),$.post(),和$.load()。它们是在几行代码中发出Ajax请求的便捷方法。
有时,我们需要对要进行的Ajax调用进行更多控制。例如,我们要指定在Ajax调用失败或需要执行Ajax请求的情况下应该发生的情况,但是只有在一定时间内检索到它的结果才需要。在这种情况下,我们可以依靠jQuery提供的另一个函数,称为$.ajax()本教程的主题。
该$.ajax()功能
jQuery $.ajax()函数用于执行异步HTTP请求。它是很久以前添加到库中的,自1.0版开始存在。该$.ajax()函数是前面提到的文章中讨论的每个函数使用预设配置在后台调用的功能。该函数的签名如下所示:
$.ajax(url[, settings])
$.ajax([settings])
该url参数是一个字符串,其中包含您要通过Ajax调用访问的URL,而它settings是一个对象文字,其中包含Ajax请求的配置。
在第一种形式中,此函数使用中url指定的参数和选项执行Ajax请求settings。在第二种形式中,URL是在settings参数中指定的,或者可以省略,在这种情况下,将向当前页面发出请求。
下一部分将描述此功能接受的选项列表,该列表很长,因此我将简短说明。如果您想深入研究它们的含义,可以参考的官方文档$.ajax()。
该settings参数
您可以指定许多不同的选项$.ajax()来满足您的需求。在下面的列表中,您可以找到它们的名称和描述(按字母顺序排列):
accepts:在请求标头中发送的内容类型,它告诉服务器它将接受哪种响应。
async:将此选项设置false为执行同步请求。
beforeSend:请求前的回调函数,可用于jqXHR在发送对象之前对其进行修改。
cache:设置此选项可false强制浏览器不缓存请求的页面。
complete:请求完成时(执行after success和errorcallbacks)将要调用的函数。
contents:确定库将如何解析响应的对象。
contentType:发送到服务器的数据的内容类型。
context:一个对象,用作this所有与Ajax相关的回调的上下文()。
converters:包含dataType到dataType转换器的对象。
crossDomain:将此属性设置true为在同一域上强制执行跨域请求(例如JSONP)。
data:执行Ajax请求时要发送到服务器的数据。
dataFilter:用于处理XMLHttpRequest的原始响应数据的函数。
dataType:期望从服务器返回的数据类型。
error:如果请求失败,将调用的函数。
global:是否为此请求触发全局Ajax事件处理程序。
headers:附加标头的对象发送给服务器。
ifModified:将此选项设置true为仅当自上一个请求以来响应已更改时才想强制请求成功。
isLocal:true如果要强制jQuery将当前环境识别为“本地”,请设置此选项。
jsonp:一个字符串,用于覆盖JSONP请求中的回调函数名称。
jsonpCallback:指定JSONP请求的回调函数名称。
mimeType:一个字符串,用于指定要覆盖XHR MIME类型的MIME类型。
password:与XMLHttpRequest一起用于响应HTTP访问认证请求的密码。
processData:将此选项设置为false如果您不希望传递到该data选项的数据(如果还没有字符串)将被处理并转换为查询字符串。
scriptAttrs:定义一个具有附加属性的对象,以在“脚本”或“ jsonp”请求中使用。
scriptCharset:在请求中使用的脚本标签上设置charset属性,但仅在使用“脚本”传输时才适用。
statusCode:数字HTTP代码和响应中具有相应代码的函数的对象。
success:如果请求成功,将调用的函数。
timeout:一个数字,用于指定请求的超时时间(以毫秒为单位)。
traditional:true如果您希望使用传统的参数序列化样式,请将其设置为。
type:发出的请求类型,可以是“ POST”或“ GET”。
url:包含请求发送到的URL的字符串。
username:XMLHttpRequest用来响应HTTP访问认证请求的用户名。
xhr:用于创建XMLHttpRequest对象的回调。
xhrFields:要在本机XHR对象上设置的对象。
那是一个很长的列表,不是吗?好吧,作为一名开发人员,您可能在我猜的第五或第六个元素处停止阅读此列表,但这很好。下一节将更加令人兴奋,因为我们将把$.ajax()函数和其中一些选项付诸实践。