URL не может быть длиннее 2k для IE, но как насчет URL ajax и включает ли он хеш в URL? - PullRequest
2 голосов
/ 09 июля 2010

Когда IE использует Ajax, применяется ли ограничение длины в 2 КБ для URL?(или это только для URL-адреса в адресной строке)

А как насчет URL, у которого хеш-часть вместе превышает 2 КБ, но без хеш-функции меньше 2 КБ?

Ответы [ 3 ]

3 голосов
/ 09 июля 2010

Все запросы IE проходят через Wininet.Взгляните на заголовочные файлы SDK:

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include>findstr /spin /c:"INTERNET_MAX" *.h
WinInet.h:85:#define INTERNET_MAX_HOST_NAME_LENGTH   256
WinInet.h:86:#define INTERNET_MAX_USER_NAME_LENGTH   128
WinInet.h:87:#define INTERNET_MAX_PASSWORD_LENGTH    128
WinInet.h:88:#define INTERNET_MAX_PORT_NUMBER_LENGTH 5           // INTERNET_PORT is unsigned short
WinInet.h:89:#define INTERNET_MAX_PORT_NUMBER_VALUE  65535       // maximum unsigned short value
WinInet.h:90:#define INTERNET_MAX_PATH_LENGTH        2048
WinInet.h:91:#define INTERNET_MAX_SCHEME_LENGTH      32          // longest protocol name length
WinInet.h:92:#define INTERNET_MAX_URL_LENGTH         (INTERNET_MAX_SCHEME_LENGTH \
WinInet.h:94:                                        + INTERNET_MAX_PATH_LENGTH)
WinInet.h:1712:#define MAX_GOPHER_HOST_NAME        INTERNET_MAX_HOST_NAME_LENGTH
WinInet.h:1720:                                    + INTERNET_MAX_PORT_NUMBER_LENGTH   \
Winineti.h:1511:#define URL_LIMIT INTERNET_MAX_URL_LENGTH

Так что да, это ограничение длины применимо.

2 голосов
/ 09 июля 2010

Ограничение длины URL-адреса включает все части URL-адреса, включая хост, информацию о пользователе, путь, фрагмент и параметры запроса.Ограничение применяется к любому запросу (GET, PUT, POST, DELETE и т. Д.).Это фактическое ограничение WinInet, а не ограничение адресной строки IE, поэтому оно применимо и к запросам AJAX.

Если вам нужно отправить длинные данные на сервер, вам следует рассмотреть возможность выполнения POST с данными втело запроса.

1 голос
/ 09 июля 2010

Не совсем уверен в этом, но вы можете избежать этого ограничения, используя POST вместо GET

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...