Bardzo częstym błędem w świecie ASP jest: Nagłówki HTTP są już zapisywane w przeglądarce klienta. Wszelkie modyfikacje nagłówka HTTP muszą zostać wykonane przed zapisaniem zawartości strony. Rzeczywisty blok błędów wygląda następująco:

Błąd obiektu odpowiedzi „ASP 0156: 80004005
Błąd nagłówka
/index.asp, wiersz 22
Nagłówki HTTP są już zapisane w przeglądarce klienta. Wszelkie modyfikacje nagłówka HTTP muszą zostać wykonane przed zapisaniem zawartości strony.

Po pierwsze, co powoduje ten błąd? Dokładnie tak jest powiedziane. Napisałeś już nagłówki HTTP - takie jak polecenia HTML, HEAD lub BODY. Próbujesz teraz zrobić coś innego - prawdopodobnie polecenie response.redirect. Nie możesz przejść do nowej strony w trakcie pisania starej strony.

Pierwszą najbardziej prawdopodobną sytuacją jest to, że naprawdę coś napisałeś, a następnie spróbuj odpowiedzieć. Jeśli chcesz przejść do nowej strony, wykonaj proces decyzyjny PRZED rozpoczęciem pisania czegokolwiek na ekranie. Nie możesz po prostu przeskoczyć w połowie rysowania strony. Wykonaj przetwarzanie, zdecyduj, czy musisz iść gdzie indziej, i idź tam, jeśli musisz. Jeśli nie, narysuj stronę, na której aktualnie jesteś. Możesz dowiedzieć się więcej o korzystaniu z Response.Redirect to Change Pages

Drugim najczęstszym powodem tego jest to, że oszukujesz się za pomocą przycisków w IIS. Jeśli przejdziesz do katalogu domowego - Konfiguracja - Opcje aplikacji, pojawi się pole wyboru o nazwie „Włącz buforowanie”. Domyślnie powinno być WŁĄCZONE. Gdy ta opcja jest włączona, oznacza to, że proces ASP przechowuje to, nad czym pracuje, aż do końca, a następnie wysyła całą stronę do użytkownika. Jest to skuteczny sposób obsługi ASP.

Jeśli jednak wyłączysz to pole wyboru, nie będziesz mógł po prostu wywołać polecenia response.redirect, aby przejść do nowej strony. Musisz zacząć ręcznie radzić sobie z problemami z buforowaniem. Jeśli naprawdę chcesz dostać się do tego bałaganu, przeczytaj artykuł o tym, jak działa buforowanie w ASP.

Proste rozwiązanie to:

* Zawsze pozostawiaj pole wyboru Włącz buforowanie włączone
* Zawsze używaj response.redirect ZANIM napiszesz DOWOLNY HTML.

Wprowadzenie do ASP Ebook

Pobierz ten ebook, aby uzyskać wszystko, co musisz wiedzieć o nauce ASP - od samouczka krok po kroku po listy funkcji, przykładowy kod, typowe błędy i rozwiązania i wiele więcej! 101 stron.

Instrukcje Wideo: Jak działa flaga SameSite cookie? (Może 2024).