2010-09-30 3 views
27

У меня есть следующий код:

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

При вызове метода Get(), вам нужно передать URL и параметр. Так почему бы вам не построить строку для полного URL-адреса в функции обратного вызова? – Vikas

ответ

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

+0

Есть ли способ сделать то же самое в angularjs? –

+0

Я не уверен. Я не знаком с angularjs ... вы должны задать отдельный вопрос об этом ... – Reigel

3

Поскольку jQuery.get просто сокращение для jQuery.ajax, еще один способ будет использовать context вариант последней свои, а заявил в documentation:

this ссылки во всех обратных вызовов является объектом в опционных контексте па 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

Спасибо. Я url помог отладить мою ошибку отправки формы в Rails. Новый ресурс был создан с помощью «нового» пути действия контроллера MyResource http: // localhost: 3000/my_resource/new. Ссылка сделала запрос AJAX настраиваемому контроллеру Rails «change_partial». В параметрах AJAX я использовал 'type: 'GET', url: 'change_partial', dataType: 'html''. Нажатие ссылки вызывает действие контроллера backend, возвращая частично обработанный HTML. Но при отправке формы с ошибками проверки отображается «созданный» путь http: // localhost: 3000/my_resource /, и нажатие ссылки вызвало ошибки. Исправлено изменением 'url: 'my_resource/change_partial'' –

Смежные вопросы