Podczas przeglądania źródła strony w Google Chrome przeglądarka otwiera nową kartę i w zasadzie wkleja adres URL z view-source:
prefiksem. To jest niepożądane.
Jako programista mogę dołączyć wyniki diagnostyczne widoczne tylko w źródle po przesłaniu formularza. Gdy Chrome odświeża stronę, aby wyświetlić źródło, informacje te znikają.
Czy istnieje sposób, aby temu zapobiec?
Uwaga: znam opcję „Sprawdź element”. To po prostu nie jest odpowiedni stand-in do przeglądania źródła strony surowej strony, na którą patrzysz.
Szybki skrypt testowy
<pre>
<?= print_r($_POST, true) ?>
</pre>
<form action="" method="post">
<input id="foo" name="foo" value="bar" />
<input type="submit" />
</form>
Po kliknięciu przycisku przesyłania strona wyświetla się
Array
(
[foo] => bar
)
Jeśli wyświetlisz źródło strony, zobaczysz puste $_POST
wyjście
<pre>
Array
(
)
</pre>
<form action="" method="post">
<input id="foo" name="foo" value="bar" />
<input type="submit" />
</form>
Aktualizacja
Najwyraźniej ten błąd został już zgłoszony. Westchnienie...
Jeśli ktoś wie o dobrej pracy, byłbym bardzo wdzięczny.
Odpowiedzi:
Na stronie raportu o błędzie działa obejście wspomniane w komentarzu 12 : W Narzędziach programisty włącz Śledzenie zasobów. (Jeśli był wyłączony, włączenie go spowoduje ponowne przesłanie żądania, które wygenerowało aktualnie widoczną stronę, POST lub GET.) Na liście zasobów możesz kliknąć stronę główną, aby zobaczyć kod źródłowy, ponieważ został zwrócony przez podzielenie zarówno dla żądań POST, jak i GET.
Więcej informacji
Przeprowadziłem kilka testów przy użyciu prostego pliku php, który pokazał zastosowaną metodę żądania i wartość POSTed, dziennik serwera proxy, aby zobaczyć, które żądania Chrome wysyła, oraz
chrome://net-internals/view-cache/
prefiks, aby zobaczyć, co Chrome buforuje.Gdy używasz polecenia Wyświetl źródło, Chrome pokazuje źródło swojej wersji strony w pamięci podręcznej i buforuje tylko strony żądane za pomocą metody GET.
Jeśli patrzysz na stronę, o którą wcześniej prosiłeś za pomocą GET i POST, tylko buforowana jest tylko wersja GET. Użycie polecenia Wyświetl źródło nie spowoduje ponownego żądania strony, ale wyświetli buforowaną wersję GET, a nie aktualnie widoczną wersję POST, jeśli taka istnieje.
Jeśli patrzysz na stronę, o którą poprosiłeś tylko przy użyciu metody POST, to użycie polecenia Wyświetl źródło spowoduje, że Chrome zajrzy do swojej pamięci podręcznej, niczego nie znajdzie, poprosi o stronę za pomocą GET, zapisz ją w pamięci podręcznej i pokaż źródło tego.
źródło
use "Inspect Element"
Dobre pytanie - i nieco rozczarowujące do przeczytania wszystkich komentarzy „to źle” lub „to nie zadziała”. Takie zachowanie sprawia, że funkcja „Wyświetl źródło strony” jest bezużyteczna w wielu przypadkach.
Istnieje rozszerzenie o nazwie „ Szybka przeglądarka źródeł ”, które wydaje się pokazywać źródło aktualnie wczytywanej strony (chociaż nie testowałem jej z żądaniami POST).
źródło
Przykro mi to mówić, ale jest to sprzeczne z obecnym charakterem przeglądania i debugowania w przeglądarce ...
Oryginalne źródło nie jest przechowywane w pamięci, ale jest parsowane i przekształcane w drzewo parsowania tak szybko, jak to możliwe, aby zapobiec niepotrzebnemu wykorzystaniu pamięci. W związku z tym wszelkie informacje debugowania ukryte w źródle zostaną utracone i należy je wyraźnie zażądać. W tak zwanych witrynach Web 2.0 elementy również się zmieniają i dlatego inspekcja jest taka ...
Rozwiązanie 1: Fiddler Web Debugger umożliwia kontrolę ruchu HTTP,
pozwala to zobaczyć informacje debugowania z ostatniego żądania.
Rozwiązanie 2: Osadź swoje informacje debugujące lub dołącz je na końcu,
a może pokaż jako wyskakujące okienko lub w inny niesamowity sposób, który nie zakłóci twojego układu.
źródło