2013-05-31 16 views
5

Mam rozszerzenie chrome i obecnie używam api webrequest. Moje pytanie jest proste, czy można zablokować i zmodyfikować żądanie AJAX za pomocą api webrequest? Jeśli nie, to jest do tego jakieś zadanie?Blokowanie i modyfikowanie żądań AJAX przy użyciu webRequest

PS. Próbuję wstrzyknąć fragmenty kodu HTML do wiadomości e-mail GMail, ale jedyne rozwiązanie, które znalazłem do tej pory, obejmuje wykrywanie różnych typów składów, a następnie wstrzykiwanie mojego kodu HTML. Ta metoda jest dobra, z wyjątkiem jej niestabilności, tylko około 70% czasu działania insercji.

Jeśli jest lepszy sposób, proszę dać mi znać, dzięki!

EDIT

znaleźli kilka alternatywnych rozwiązań, jeśli ktoś potrzebuje.

  • Zastąp domyślną metodę XMLHttpRequest.send nadawania zdarzenia. Możesz zmodyfikować żądanie, zanim zostanie wysłane.
  • zastąpić domyślny formularz przedstawić metody i przechwytywać wszystkie formy twierdzi, zanim zostaną one złożone (modyfikować dane formie)
+0

Również ehre: https://stackoverflow.com/q/23561805/632951 – Pacerier

Odpowiedz

2

Obecnie nie ma możliwości uzyskania dostępu lub modyfikacji treści odpowiedzi za pomocą api webRequest. Jest open issue w chromie z prośbą o tę funkcję. Niedawno zaimplementowali zdolność accessing the request body, więc może być szansa, że ​​również ją dodadzą.

Możesz mieć więcej szczęścia dzięki technikom modyfikującym obiekt XMLHttpRequest, zgodnie z opisem w this answer. Here Masz szczegółowe studium przypadku, w którym reakcja AJAX jest przechwytywana i modyfikowana.

+0

Miałem przeczucie, że nie było to możliwe, naprawdę mam nadzieję, że wkrótce to wdrożą, ale dzięki za świetne linki, powinno być interesujące czytanie! – 1337holiday

+0

@rsanchez, Ale pytający chce tylko zablokować, prawda? co jest możliwe? – Pacerier

2

Chociaż można wykryć XMLHttpRequests jawnie ustawienie type property for chrome.webRequest do xmlhttprequest, będzie tylko w stanie zablokować żądania asynchroniczne.

Synchroniczne XMLHttpRequests wykonane z twojego rozszerzenia są ukryte przed blokowaniem procedur obsługi zdarzeń, aby zapobiec zakleszczeniom. Również interfejs API webRequest ujawnia tylko połączenia wykonane na wzorce URi zdefiniowane w obszarze manifestu w obszarze permissions.

+0

Otóż, już blokuję żądania z adresu mail.google.com, w szczególności XMLHttpRequests, jak podano. Czy jednak możliwe jest zmodyfikowanie kodu odpowiedzi tych żądań za pomocą web-zapytań? Próbowałem i wydaje mi się, że nie jest to coś, co jest obsługiwane. – 1337holiday

+0

Rozumiem, że można modyfikować tylko obiekt responseHeaders, używając metody blokowania. Występuje oczekujące żądanie funkcji dotyczące dokładnie tego rodzaju kontroli, którą chcesz https://code.google.com/p/chromium/issues/detail?id=104058 – QFDev

+0

Kluczową częścią jest "Synchroniczne XMLHttpRequests ** wykonane z Twojego rozszerzenia * * ", dzięki czemu można przetwarzać synchroniczne XHR z innych źródeł. Pytanie to wyjaśnia, że ​​to własne żądania strony. – Xan

Powiązane problemy