powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как запросить Content-Length через XMLHttpRequest?
10 сообщений из 10, страница 1 из 1
Как запросить Content-Length через XMLHttpRequest?
    #38546088
janco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую. Можно ли и как запросить длину контента посредством XMLHttpRequest?
Метод используется GET. Проблема в том, что сервер не отдаёт заголовки Content-Length. Можно ли как-то от имени клиента "потребовать", что нужен этот заголовок?
И ещё один вопрос. Как указать версию протокола при отправке запроса? Допустим надо HTTP/1.0 Я пробовал:
Код: javascript
1.
xhr.open("GET / HTTP/1.0",url,false);


выдаёт SYNTAX_ERROR
Единственный выход установить заголовок Upgrade?
...
Рейтинг: 0 / 0
Как запросить Content-Length через XMLHttpRequest?
    #38546623
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если не ошибаюсь, то версию протокола указывает сервер при ответе, например, в php это делается функцией header('HTTP/1.0 200 ok');
Можно посчитать длину с помощью серверного кода и отдать заголовок Content-Length

Посмотрите, если сейчас присутствуют заголовки Transfer-Encoding: chunked и Content-Encoding: gzip ,
то вряд-ли будет присутствовать заголовок Content-Length (опять-таки если не ошибаюсь),
если-бы сервер знал точный конечный размер в байтах, думаю, он и без принудительного требования выдал-бы соответствующий заголовок...
...
Рейтинг: 0 / 0
Как запросить Content-Length через XMLHttpRequest?
    #38546630
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jancoсервер не отдаёт заголовки Content-Length. Можно ли как-то от имени клиента "потребовать", что нужен этот заголовок?Нельзя. В общем случае, сервер не обязан отдавать этот заголовок.
...
Рейтинг: 0 / 0
Как запросить Content-Length через XMLHttpRequest?
    #38546666
janco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
awsЕсли не ошибаюсь, то версию протокола указывает сервер при ответе, например, в php это делается функцией header('HTTP/1.0 200 ok');
Ну а до ответа, клиент по какой версии запрашивает?
vkleНельзя. В общем случае, сервер не обязан отдавать этот заголовок.
Да я понимаю, что не обязан, зато хотел попросить его об этом :) Сервер то собственно не мой, я не могу там ничего менять и установить заголовки ответа не могу.
Ладно спасибо всем за ответы, понял. Буду с костылями работать.
...
Рейтинг: 0 / 0
Как запросить Content-Length через XMLHttpRequest?
    #38546680
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jancoawsЕсли не ошибаюсь, то версию протокола указывает сервер при ответе, например, в php это делается функцией header('HTTP/1.0 200 ok');
Ну а до ответа, клиент по какой версии запрашивает?
Проверил сейчас на шаред-хостинге - значение $_SERVER['SERVER_PROTOCOL'] показывает "HTTP/1.0", вне зависимости от GET / POST запроса и заданной версии HTTP,
даже если браузер показывает, что будет отправлять следующие заголовки:
GET / HTTP/1.1
Host: ...
и т.д.

видимо, версия HTTP при запросе часто не имеет значения, раз запрос сервером принят,
а вот ответ сервера может зависеть от отдаваемых данных (прикреплённый бинарный файл, строка данных, сжатые данные и т.д.).
...
Рейтинг: 0 / 0
Как запросить Content-Length через XMLHttpRequest?
    #38546849
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vklejancoсервер не отдаёт заголовки Content-Length. Можно ли как-то от имени клиента "потребовать", что нужен этот заголовок?Нельзя. В общем случае, сервер не обязан отдавать этот заголовок.
Чё-то я нифига не понял. Контент-ленгтх, имхо, приходит в запросе. Куда он его нафиг должен отдавать?
...
Рейтинг: 0 / 0
Как запросить Content-Length через XMLHttpRequest?
    #38547274
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно запросить все заголовки и надеяться, что сервер отдаст Content-Length.
Код: javascript
1.
xhr.open("HEAD",url,false);
...
Рейтинг: 0 / 0
Как запросить Content-Length через XMLHttpRequest?
    #38547446
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeКонтент-ленгтх, имхо, приходит в запросе.В ответе сервера он тоже может быть. Например, вот это сервер sql.ru на каких-то запросах отдает Content-Length, а на каких-то нет.
...
Рейтинг: 0 / 0
Как запросить Content-Length через XMLHttpRequest?
    #38547982
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если сервер свой же, то можно наладить отдачу какого-нить X-Content-Length, в котором указывать размер данных. Если используется Transfer-Encoding: chunked или Content-Encoding: gzip, то в первом случае Content-Length-а нет вообще, а во втором в нём указан размер gzip-данных, который javascript-у всё равно ни о чём не скажет (в этом например глюк xhr-овского progress, который считает количество переданных данных в ungzip, а Content-Length, если выставлен gzip, вообще игнорит, то есть где-то отдельно нужно передавать размер контента без gzip, короче глюк на глюке).
...
Рейтинг: 0 / 0
Как запросить Content-Length через XMLHttpRequest?
    #38549320
janco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aswsвидимо, версия HTTP при запросе часто не имеет значения, раз запрос сервером принят,
спасибо, приму во внимание.
Antonariy , на запрос HEAD тем более не отдаёт. Если GET то ещё раньше отдавал Content-Length, а HEAD - нет. Теперь и в том и в том случае нет Content-Length.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как запросить Content-Length через XMLHttpRequest?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]