2015-01-16 1 views
2

Я получаю URL от сервера с большим количеством данных в строке запросаIE: window.open URL, который более 2083 символов

(Э.Г. http://www.test.com/?n=1,2,3,4,5,6,7,8.....100000), и я хочу, чтобы открыть его с помощью window.open().

Но в тот момент, когда я передаю URL-адрес window.open, URL-адрес, который получает, усекается. После некоторого поиска я мог выяснить, что максимальный предел для URL-адреса равен 2,083 characters (IE), поэтому он проходит ЧАСТЬ строки запроса и усекает остальные.

Как я могу это преодолеть?

Пожалуйста, дайте мне знать, если мне нужно предоставить более подробную информацию.

+0

Как насчет данных POST вместо GET? – Justinas

+0

@Justinas Я бы наверняка попробовал альтернативы, если не получим решение .. :( – Shubh

+0

Также ... Мне нужно передать URL-адрес 'window.open' ... проблема начинается там. – Shubh

ответ

1

Я думаю, что единственным решением является использование POST вместо GET. Просто используйте форму, а не window.open. Пожалуйста, смотрите этот старший ответ: https://stackoverflow.com/a/17089124/907420

0

Вы можете попробовать URL shorteners, как goo.gl или bit.ly: https://goo.gl/

Говоря о программировании, вы могли бы попытаться сократить ваш URL-ы себя, для Приведенный пример: Exact URL for your example, shorter by ~2000 characters. Где x..y переводится на стороне сервера, как диапазон (х, у) -> 1,2,3,4,5 ... 100000 для х и у равно 1 и 100000

+0

Конечно URL сократители работают только для исправления URL-адресов, или вам нужно заплатить за это ... –

0

Если вы хотите придерживаться GET (и я бы рекомендовал вам использовать POST), вы можете попытаться сжать параметры. Вместо того, чтобы давать огромное количество параметров, вы создаете объект javascript, содержащий параметры, jsonfy его, и вы получите строку, которая может быть сжата и несжата снова на другом конце. После этого вы можете десериализовать строку JSON, и у вас есть свои параметры. В зависимости от количества параметров это может быть недостаточно для запроса GET.

Но в конце запрос POST - лучшее решение, я думаю.

Смежные вопросы