我有以下代码:
$.get('http://www.example.org', {a:1,b:2,c:3}, function(xml) {}, 'xml');
有没有办法在请求发出后(在回调或其他方面)获取用于发出请求的URL?
我想要输出:
http://www.example.org?a=1&b=2&c=3
答案 0 :(得分:48)
我无法让它在$.get()
上工作,因为它没有complete
个事件。
我建议像这样使用$.ajax()
,
$.ajax({
url: 'http://www.example.org',
data: {'a':1,'b':2,'c':3},
dataType: 'xml',
complete : function(){
alert(this.url)
},
success: function(xml){
}
});
答案 1 :(得分:3)
由于jQuery.get只是jQuery.ajax的简写,另一种方法是使用后者的context
选项,如documentation中所述:
所有回调中的
this
引用是在设置中传递给$.ajax
的上下文选项中的对象;如果未指定context,则这是对Ajax设置本身的引用。
所以你会用
$.ajax('http://www.example.org', {
dataType: 'xml',
data: {'a':1,'b':2,'c':3},
context: {
url: 'http://www.example.org'
}
}).done(function(xml) {alert(this.url});