2010-09-30 13 views
27

Mam następujący kod:

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

Czy istnieje sposób, aby pobrać adres URL, aby wniosek po wniosek został złożony (w oddzwanianiu lub w inny sposób)?

Chcę wyjście:

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

Po wywołaniu metody get(), trzeba przekazać URL i parametry. Dlaczego więc nie stworzysz łańcucha dla pełnego adresu URL w funkcji wywołania zwrotnego? – Vikas

Odpowiedz

38

nie mogę zmusić go do pracy na $.get() ponieważ nie ma complete wydarzenie.

Proponuję użyć $.ajax() takiego,

$.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

Tak inteligentny! Jestem zaskoczony, że ten.url nie jest dostępny w oddzwonieniu powodzenia – Christopher

+0

Czy jest jakiś sposób, aby zrobić to samo w angularjs? –

+0

Nie jestem pewien ... Nie jestem zaznajomiony z angularjs ... powinieneś osobne pytanie na ten temat ... – Reigel

3

Od jQuery.get jest tylko skrótem jQuery.ajax, inny sposób byłoby użyć tego ostatniego za opcję context, jak podano w documentation:

odniesienie this we wszystkich wywołań zwrotnych jest obiekt w PAN opcji kontekst sed do $.ajax w ustawieniach; jeśli kontekst nie jest określony, jest to odniesienie do samych ustawień Ajax.

Więc byłoby użyć

$.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

Dzięki. Mój adres URL pomógł w debugowaniu błędu przesyłania formularza w Railsach. Utworzono nowy zasób z "nową" ścieżką działania kontrolera MyResource http: // localhost: 3000/my_resource/new. Łącze wysłało żądanie AJAX do niestandardowej akcji kontrolera Railsowego "change_partial". W opcjach AJAX użyłem 'type: 'GET', url: 'change_partial', dataType: 'html''. Kliknięcie łącza o nazwie działanie kontrolera zaplecza, zwracanie wyrenderowanego fragmentu HTML. Ale przesłanie formularza z błędami sprawdzania poprawności renderowanymi ścieżką "create" http: // localhost: 3000/my_resource /, a kliknięcie linku powodowało błędy. Naprawiono przez zmianę 'url: 'my_resource/change_partial'' –

Powiązane problemy