Szukałem sposobu na zmianę żądania XHR wysłanego w mojej przeglądarce, a następnie ponowne odtworzenie. Powiedzmy, że w przeglądarce zostało wykonane pełne żądanie POST, a jedyną rzeczą, którą chcę zmienić, jest mała wartość, a następnie odtworzenie jej ponownie. Byłoby to o wiele łatwiejsze i szybsze do zrobienia bezpośrednio w przeglądarce.
Wyszukałem trochę w Google i nie znalazłem sposobu, aby to zrobić w Chrome lub Firefox. Czy można to zrobić w jednej z tych przeglądarek, a może w innej?
google-chrome
firefox
browser
xmlhttprequest
madsobel
źródło
źródło
OPTIONS
żądaniami preflight ( ) musisz kliknąć „replay” w żądaniu preflight - a nie w rzeczywistym żądaniu końcowym.Odpowiedzi:
Chrome:
curl
polecenieZobacz zdjęcie:
Ewentualnie, w przypadku konieczności wysłania żądania w kontekście strony internetowej , wybierz „Kopiuj jako pobranie” i edytuj-wyślij zawartość z panelu konsoli javascript.
Firefox:
Firefox umożliwia edycję i ponowne wysyłanie XHR bezpośrednio z panelu Sieć. Poniższe zdjęcie pochodzi z przeglądarki Firefox 36:
źródło
curl ... > preview.html
a następnie otwórz plik w przeglądarce.&& open preview.html
na macOS, a plik zostanie otwarty bezpośrednio po żądaniuChrome ma teraz Copy as fetch w wersji 67:
https://developers.google.com/web/updates/2018/04/devtools#fetch
Przykładowe dane wyjściowe:
Różnica polega na tym, że Kopiuj jako cURL będzie zawierać również wszystkie nagłówki żądań (takie jak Cookie i Accept) i nadaje się do ponownego odtwarzania żądania poza Chrome.
fetch()
Kod jest odpowiedni dla odtwarzając wewnątrz tej samej przeglądarce.źródło
fetch
polecenie bezpośrednio w konsoli Chrome i powtórzyć żądanie..then(r => r.json()).then(json => console.log(json))
Moje dwie sugestie:
Wtyczka Postman do Chrome + wtyczka Postman Interceptor . Więcej informacji: Listonosz przechwytuje dokumenty żądań
Jeśli korzystasz z systemu Windows, opcją jest Telerik Fiddler. Ma opcję kompozytora do odtwarzania żądań http i jest bezpłatna.
źródło
Aktualizacja / uzupełnianie odpowiedzi zszep :
Po skopiowaniu żądania jako cUrl (bash), po prostu zaimportuj je do aplikacji Postman :
źródło
W przypadku przeglądarki Firefox problem sam się rozwiązał. Posiada zaimplementowaną funkcję „Edytuj i wyślij ponownie”.
Wydaje się, że rozszerzenie Chrome Tamper załatwia sprawę.
źródło
Minęło 5 lat i twórcy Chrome nie zignorowali tego podstawowego wymagania.
Chociaż nie oferują żadnej metody edycji danych, jak w Firefoksie, oferują pełną powtórkę XHR.
Pozwala to na debugowanie wywołań ajax. „Replay XHR” powtórzy całą transmisję.
źródło
Jest na to kilka sposobów, jak wspomniano powyżej, ale z mojego doświadczenia wynika, że najlepszym sposobem na manipulowanie żądaniem XHR i ponowne wysłanie jest użycie narzędzi chrome dla programistów do skopiowania żądania jako żądania cURL (kliknij prawym przyciskiem myszy żądanie na karcie sieciowej ) i po prostu zaimportować do aplikacji Postman (gigantyczny przycisk importu w lewym górnym rogu).
źródło
Nie ma potrzeby instalowania rozszerzeń innych firm!
Istnieje fragment kodu javascript , który można dodać jako zakładkę przeglądarki, a następnie aktywować w dowolnej witrynie, aby śledzić i modyfikować żądania. To wygląda jak:
Aby uzyskać dalsze instrukcje, przejrzyj stronę github.
źródło