#php #ajax #url #https #maxlength
#php #ajax #url #https #максимальная длина
Вопрос:
Я столкнулся со странным поведением почти каждого браузера на моем ноутбуке — URL-адреса HTTPS длиной более 1024 символов работают только в GC. FF, IE, Opera, Safari — ни один из них не загружает данные с сервера.
У меня есть веб-приложение, которое использует AJAX для извлечения данных JSON для моих таблиц. И когда к данным применяются некоторые фильтры, условия поиска (для каждого столбца) отправляются через GET (я использую DataTables). URL (URI?) Легко достигает 900 или 1000 символов, что по-прежнему нормально, все идет хорошо…
Но затем — есть потребность в том, чтобы веб-приложение работало через Cisco WebVPN (SSLVPN Service), и это переписывает URL-адреса и добавляет токены … так что URL становится длиннее 1024 символов, и вот тут все идет под откос — только в Chrome я получаю ответ.
Отправляет ли GC какой-либо «короткий» относительный путь на сервер, а другие браузеры нет? В консоли это так не кажется… Это ошибка сервера или всех браузеров? Я не смог найти никакой информации о таком ограничении в браузерах… и браузеры говорят, что сервер сбросил соединение — возможно, интерфейс CISCO? Но почему тогда это работает в GC?
Я ввел недопустимый (несуществующий) путь в URL-адресе, и снова только GC сообщает мне, что ресурс не найден на сервере — все остальные говорят точно то же самое, что и раньше — сервер сбросил соединение…
Переход на POST — это ПОСЛЕДНЕЕ, что я хотел бы сделать, потому что это БОЛЬШОЙ проект с множеством различных «веб-просмотров» данных, и каждый из них специфичен.JS и .Скрипты PHP — так много работы и так мало времени! ;(
Есть идеи, как это санировать?
Комментарии:
1. Установлен ли на вашем веб-сервере mod_spdy? Chrome знает, как использовать протокол SPDY, а не HTTP, в чем может быть разница. Кроме того, что делать с инструментами командной строки, такими как
curl
иwget
?2. Вопросы о том, как отвечает ваш веб-сервер, не по теме здесь, в StackOverflow. Вы можете задать такие вопросы на webmasters.stackexchange.com или в serverfault.com
3. @stephen Да, сервер обрабатывает запросы без каких-либо проблем… Мне удалось разобраться с этим, спасибо за ваш совет по изучению сервера — хотя это не вина серверов, я нашел виновного! 🙂
4. Можете ли вы опубликовать решение в качестве ответа, чтобы другие люди, у которых есть проблема, также могли воспользоваться этим вопросом?
5. Я опубликовал это, но … это не «решение», это скорее описание того, что происходит и кто виноват…
Ответ №1:
Извините, что мне приходится самому отвечать на свой вопрос, но таким образом вопрос (и ответ) будут доступны другим, которые могут столкнуться с подобными проблемами.
Виноват Cisco WebVPN (служба SSLVPN) — она не может обрабатывать запросы длиной более 1024 символов. И это, собственно, все.
Я не нашел способа настроить это ограничение конфигурации в маршрутизаторе Ciscos, поэтому мне придется просмотреть код и переместить все в запросы POST … : (