当IE执行Ajax时,2k长度限制是否仍然适用于URL? (或者仅用于地址栏上的URL)
如果URL的哈希部分超过2k但没有哈希值,那么它小于2k?
答案 0 :(得分:3)
所有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
所以,是的,长度限制适用。
答案 1 :(得分:2)
URL长度限制包括URL的所有部分,包括主机,用户信息,路径,片段和查询参数。该限制适用于任何请求(GET,PUT,POST,DELETE等)。这是一个实际的WinInet限制,而不是IE地址栏限制,所以它也适用于AJAX请求。
如果您需要将长数据发送到服务器,您应该考虑使用请求正文中的数据进行POST。
答案 2 :(得分:1)
不完全确定,但您可以通过使用POST而不是GET来避免此限制