2012-05-14 4 views
0

Можно создать дубликат:
Is it possible to force jQuery to make AJAX calls for URLs with gzip/deflate enabled?

Я собираюсь на двух разных доменах с JSONP. Domain1 запрашивает Domain2 для некоторых json-данных, используя $ .getJSON с параметром обратного вызова, и это отлично работает, никаких проблем нет.

Domain2 также может обслуживать данные json gzipped.

Я хотел бы использовать эту функцию, но я не знаю, как запросить ее у Domain1, используя $ .getJSON jQuery.

Возможно ли это, и если да, то можете ли вы привести мне пример (или любое другое обходное решение).

Спасибо!

+1

Обычно это будет обрабатываться браузером, прозрачно, если у вас есть заголовок 'Accept', который задает zip. –

+0

@ Dave-Newton Как бы добавить заголовок к вызову? – Nik

+0

@PedroFerreira не уверен, что это или нет, кросс-домен является частью моей проблемы, что я надеялся, что кто-то сможет объяснить. Из того, что я понимаю, вызов ajax и вызов jsonp не совсем одинаковы. – Nik

ответ

1

gzipping your http traffic - это серверный параметр, прозрачный для реальных процессов, которые работают с контентом (ваш скрипт в вашем случае). Браузер заботится о gzipping, но он будет работать только в том случае, если обе стороны соединения поддерживают его (это сообщается в заголовке запроса). Также вы должны включить его на стороне сервера (например, использовать mod_deflate в apache)

Вы заявляете, что сервер на домене2 поддерживает gzipping, поэтому, если вы правильно настроили его, весь трафик, который является «gzippable», автоматически получит gzippable. Никакой дополнительной работы с вашей стороны не требуется.

Если вы хотите узнать, получает ли трафик yrou gzipped, посмотрите заголовки ответа вашего jsonp-вызова. Они должны сказать, что gzip используется. Вы можете сделать это в хром, например.

+0

Спасибо, ты прав. Я проверял размер ответа после того, как браузер уже обработал данные gzipped. После проверки заголовков ответов он ясно показывает, что он был gzipped и что он был намного меньше. Я просто не выглядел достаточно внимательно ... мой плохой. – Nik

+0

Хорошо, никаких проблем. Хорошо, что вы это поняли. – koenpeters

0

Я не думаю, что есть способ рассказать обозревателю, что делать в этом случае. Если это запрос JSONP, о котором мы говорим, тогда ваш браузер решит, какие заголовки отправлены. Запрос JSONP - это еще один тег <script>.

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