jQuery.ajaxPrefilter()
函数用于指定预先处理Ajax参数选项的回调函数。(可以理解为请求拦截器了,在请求前做一些事件处理)。
每次调用$.get()
或$.post()
或$.ajax()
的时候,会先调用ajaxPrefilter()
这个函数,在这个函数中,可以拿到我们给Ajax提供的配置对象:
$.ajaxPrefilter( function( options ) {
console.log(options.url) // 获取出请求的地址
//发起真正的Ajax请求之前,统一拼接请求的根路径
options.url = '跟路径' + options.url
});
经过以上配置后,在进行$.get()
或$.post()
或$.ajax()
的请求的时候,url就可以不写跟路径了。
如下代码:
// 监听登录表单的提交事件
$('#form_login').submit(function(e) {
// 阻止默认提交行为
e.preventDefault()
$.ajax({
url: '/api/login', //这里就不用在写根路径了
method: 'POST',
// 快速获取表单中的数据
data: $(this).serialize(),
success: function(res) {
if (res.status !== 0) {
return layer.msg('登录失败!')
}
layer.msg('登录成功!')
// 将登录成功得到的 token 字符串,保存到 localStorage 中
localStorage.setItem('token', res.token)//token:令牌
// 跳转到后台主页
location.href = '/index.html'
}
})
})
以上就是使用jQuery.ajaxPrefilter()
处理统一请求根路径方法,希望对大家用帮助。