2010-09-30 74 views
27

我有以下代碼:

$.get('http://www.example.org', {a:1,b:2,c:3}, function(xml) {}, 'xml'); 

有沒有一種方法來獲取用於使請求的請求提出後的網址(在回調或其他方面)?

我想要的輸出:

http://www.example.org?a=1&b=2&c=3 
+0

當調用get()方法,你需要通過URL和參數。那麼爲什麼你不在回調函數中爲完整的url構建一個字符串呢? – Vikas 2010-09-30 06:02:07

回答

38

我不能讓它對$.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){ 
    } 
}); 

craz demo

+3

太聰明瞭!我很驚訝this.url在成功回調中不可用 – Christopher 2010-10-01 05:00:07

+0

有沒有什麼辦法可以在angularjs中做同樣的事情? – 2015-07-06 11:25:14

+0

我不確定..我不熟悉angularjs ...你應該對它做一個單獨的問題... – Reigel 2015-07-07 02:02:55

3

由於jQuery.get只是爲jQuery.ajax的簡寫,另一種方法是使用後者的context選項,中所述的documentation

this參考所有的回調內是在上下文選項PAS對象在設置中sed到$.ajax;如果未指定上下文,則這是對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}); 
+0

謝謝。我的網址幫助調試了我在Rails中的表單提交錯誤。通過MyResource控制器http:// localhost:3000/my_resource/new的「新」操作路徑創建新資源。一個鏈接向定製的Rails控制器動作'change_partial'發出了AJAX請求。在AJAX選項中,我使用'type:'GET',url:'change_partial',dataType:'html''。點擊稱爲後端控制器操作的鏈接,返回呈現的HTML部分。但提交表單的驗證錯誤呈現'創建'路徑http:// localhost:3000/my_resource /,並點擊鏈接導致錯誤。通過更改'url:'my_resource/change_partial''修復 – 2016-09-26 05:40:57