Saat mengakses halaman asp, muncul pesan Kesalahan objek respons ASP 0156: 80004005 Kesalahan header HTTP?, baris 0 telah menampilkan header HTTP ke browser klien. Modifikasi apa pun pada header HTTP harus dilakukan sebelum mengeluarkan konten halaman. Faktanya, masalah seperti ini disebabkan oleh masalah caching. Anda dapat merujuk ke metode berikut untuk mengatasinya:
Beberapa halaman ASP akan mengalami error Response object 'ASP 0156:80004005' dan error header HTTP saat pertama kali dibuka, namun normal kembali setelah di-refresh
Copy kode kodenya sebagai berikut:
Respon.Buffer = Benar
'Seharusnya baris ini, tidak apa-apa jika kamu menghapusnya
'Jika masih tidak berhasil, saja
Respon.Buffer = Benar
Respon.ExpiresAbsolute = Sekarang() - 1
Respon. Kedaluwarsa = 0
Response.CacheControl = tanpa cache
Respon.AddHeader Pragma, Tanpa Cache
'Hapus semuanya. Ini digunakan untuk tidak menyimpan halaman dalam cache. Menghapusnya tidak akan mempengaruhi situs web.
Kesalahan ini terjadi karena server Web menggunakan header HTTP untuk menyiapkan browser klien. Server Web kemudian mencoba mengatur ulang browser klien dengan menggunakan header HTTP tambahan (misalnya, ketika header HTTP dikeluarkan setelah browser menyetel tipe konten = teks/html). Contohnya adalah saat memproses halaman ASP sebelum menyertakan tag HTML atau pernyataan Response.Redirect skrip sisi server lainnya.
Catatan Hal ini juga dapat terjadi jika Anda meng-upgrade komputer yang menjalankan Microsoft Windows NT 4.0 ke Microsoft Windows Server 2003.
Contohnya adalah saat memproses halaman ASP sebelum menyertakan tag HTML atau pernyataan Response.Redirect skrip sisi server lainnya.
Properti dan metode ASP berikut untuk objek Respon menulis header HTTP:
Respon.AddHeader
Respon.CacheControl
Respon.CharSet
Respon.ContentType
Respon. Kedaluwarsa
Respon.ExpiresAbsolute
Respon.Redirect
Respon.Status
Kembali ke atas
larutan
Untuk mengatasi masalah ini, atur header HTTP, seperti pernyataan Redirect atau informasi cookie sebelum mengirim output HTML.
Misalnya, untuk menghindari kesalahan ini dengan pengalihan, batasi buffer atau pemrosesan halaman ASP, lalu lakukan pengalihan setelah pemrosesan. Ada dua cara untuk melakukan buffering: di tingkat halaman atau di tingkat aplikasi.
Perhatikan bahwa semua skrip ASP dikeluarkan setelah pengalihan. Jika halaman ASP dialihkan sebelum dikeluarkan ke skrip ASP, kode ASP tidak diproses.
Ketika diproses pada tingkat aplikasi, semua halaman ASP dalam aplikasi Web di-buffer. Untuk mengatur buffering pada tingkat aplikasi, ikuti langkah-langkah berikut: 1. Di Microsoft Management Console (MMC), cari situs Web tempat aplikasi Web berada.
2. Klik untuk memperluas situs web guna menampilkan direktori virtual dan aplikasi web.
3. Klik kanan aplikasi Web, lalu klik Properti.
4. Pada tab Direktori Virtual, klik Konfigurasi.
Perhatikan bahwa jika tombol Konfigurasi tidak tersedia, direktori virtual bukanlah aplikasi Web. Klik Buat untuk membuat direktori virtual ke aplikasi Web.
5. Dalam kotak dialog ApplicationConfiguration@@, pada tab Opsi Aplikasi, klik Aktifkan Buffering.
Untuk mengatur tingkat halaman untuk buffering, tambahkan kode setelah baris @LANGUAGE pada halaman ASP seperti yang ditunjukkan di bawah ini:
<% @LANGUAGE = VBScript %><% Response.Buffer = True %>Skrip ASP/Sisi Klien atau HTML lainnya ...<% Response.Redirect %>Seperti yang ditunjukkan oleh kode berikut, cookie juga dapat disetel pada tingkat halaman, buffering. Cuplikan kode ini menulis cookie sebelum mengirim tag (elemen) <HTML>.
Response.Cookies(Nama)=nilai<HTML>...konten...</HTML>
Jika Anda menggunakan pusaran kecil, komponennya hilang.