Request.Form для текстовой области возвращает неверные данные - PullRequest
2 голосов
/ 01 сентября 2009

Это очень странная ошибка, возникающая только с Firefox 3.5. Я протестировал его для IE, Safari и Chrome, не выявив ошибок.

Я использую свой локальный IIS 5.1 и вы старый asp.

Я смог уменьшить область действия до этого ... У меня есть текстовая область в форме, заполненной, например, 4000 символов.

Я отправляю его на страницу page.asp.

На этой странице примера я просто создаю:

    response.Write Request.Form( "obs" )
    response.End

80% раз Firefox не может завершить загрузку (в ожидании localhost ...), и я вижу, что строка "Сервер: Microsoft-IIS / 5.1Date: Tue, 01Sep200915: 55: 01GMTContent-Type: text / html ; charset = iso-8859-1 "был вставлен в произвольном месте внутри текста. Кроме того, конец текста обрезан (полагаю, именно этого ждет Firefox ...).

Когда Firefox загружается нормально, строка сервера не включается.

Конечно, я не могу записать эти данные в базу данных ...; -D

Спасибо за чтение, и я буду признателен за любую идею об этом.

РЕДАКТИРОВАТЬ: я перезагрузил компьютер и отключил все плагины и расширения Firefox, и ошибка продолжает "работать": - (

1 Ответ

3 голосов
/ 01 сентября 2009

Это немного странно. Я провел некоторое тестирование, и у меня не возникает та же проблема.

Предполагается, что в ASP установлена ​​буферизация ответа, равная false, но FF не воспринимает полученное кодирование по частям. Почему ваша копия FF не справляется, я не знаю, так как она отлично работает на моей версии 3.5 с чанкингом или без него.

Можете ли вы улучшить качество воспроизведения деталей в вашем вопросе. Я использую эту страницу ASP в качестве теста: -

<%
If Request.QueryString("function") = "post" Then
    Response.Buffer = False
    Response.Write Request.Form("obs")
    Response.End
End If 
%>
<html>
<head>
</head>
<body>
<form action="test.asp?function=post" method="post">
    <textarea name="obs" id="obs" cols="75" rows="10">
              <!-- Loads of text here -->
    </textarea >
    <input type="submit" value="go" />
</form>
</body>
</html>
...