我可以从ajaxStart
获取请求的网址吗?我想为所有ajax请求执行一个公共操作,接受一些请求。
答案 0 :(得分:17)
不,在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 ,以便更好地了解此设计。
答案 1 :(得分:8)
你无法从ajaxstart函数获取请求的url,你只能使用ajaxsend函数,因为关于特定请求的ajaxsend函数但ajaxstart不是
$( document ).ajaxSend(function( event, jqxhr, settings ) {
if ( settings.url == "ajax/test.html" ) {
$( ".log" ).text( "Triggered ajaxSend handler." );
}
});