【发布时间】:2012-09-02 10:11:34
【问题描述】:
我可以从 ajaxStart 获取请求的 URL 吗?我想对所有 ajax 请求执行一个通用操作,接受一些请求。
【问题讨论】:
标签: jquery
我可以从 ajaxStart 获取请求的 URL 吗?我想对所有 ajax 请求执行一个通用操作,接受一些请求。
【问题讨论】:
标签: jquery
不,在ajaxStart 内,您无权访问jqXHR 对象或ajaxOptions:
// Watch for a new set of requests
if ( s.global && jQuery.active++ === 0 ) {
jQuery.event.trigger( "ajaxStart" );
}
如您所见,没有参数被传递给ajaxStart。与ajaxSend对比:
// Send global event
if ( fireGlobals ) {
globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
}
jqXHR 对象与设置一起作为参数传递:
$(document).ajaxSend(function(evt, request, settings) {
alert("Starting request at " + settings.url + ".");
});
另请参阅 this 答案以更好地了解此设计。
【讨论】:
您无法从 ajaxstart 函数获取请求的 url,您只能使用 ajaxsend 函数获取,因为 ajaxsend 函数针对特定请求而 ajaxstart 不是
$( document ).ajaxSend(function( event, jqxhr, settings ) {
if ( settings.url == "ajax/test.html" ) {
$( ".log" ).text( "Triggered ajaxSend handler." );
}
});
【讨论】: