2012-12-28 6 views
5

Czy istnieje sposób na przechwycenie zapytania ajax dokonywanego przez jquery, aby wstawić w nim dodatkowe zmienne?Przechwytywanie żądania AJAX Jquery w celu wstawienia dodatkowych zmiennych?

Wiem, że .ajaxStart() umożliwia zarejestrowanie wywołania zwrotnego, które wyzwala zdarzenie, gdy zaczyna się żądanie ajax, ale to, czego szukam, jest sposobem na anulowanie tego żądania ajax, jeśli spełnia pewne kryteria (np. Adres URL), wstaw niektóre więcej zmiennych do treści, a następnie je przesłać.

Jest to dodatek do oprogramowania innej firmy, którego własnego kodu nie można zmienić bezpośrednio.

Edytuj: Wygląda na to, że .ajaxSetup() pozwala ustawić niektóre globalne zmienne związane z ajaxRequests. Jeśli zarejestrowałem funkcję beforeSend, czy ta funkcja byłaby w stanie anulować prośbę o zmianę na spełnienie określonych kryteriów?

+0

czy próbowałeś właśnie zwrócić 'false'? Działa to w celu zatrzymania wielu wydarzeń, chociaż nie wiem dokładnie, czy to działa. lub 'event.preventDefault()'? – Colleen

+0

Interesujące, spróbuję event.preventDefault .. –

+0

możliwy duplikat [Jak zatrzymać żądanie ajax] (http://stackoverflow.com/questions/9374305/how-to-stop-ajax-request) –

Odpowiedz

6

Zdobione, to był kod użyłem:

jQuery(document).ready(function() 
{  
    var func = function(e, data) 
    {  
     //data.data is a string with &seperated values, e.g a=b&c=d&.. . 
     //Append additional variables to it and they'll be submitted with the request:  
     data.data += "&id=3&d=f&z=y"; 
     return true; 
    }; 
    jQuery.ajaxSetup({beforeSend: func}); 
    jQuery.post('example.php', {a : 'b'}, 'json');  
}); 

aby anulować żądanie, wracając fałszywe od func wydawało się do pracy.

Powiązane problemy