Можно ли заставить jQuery выполнять вызовы AJAX для URL-адресов с включенным gzip / deflate?

У меня есть веб-служба, которая может выводить данные в формате gzip / deflated. Я проверил, что служба ответит необработанным JSON или gzip-JSON с использованием wget и curl.

Я хочу использовать эту веб-службу с помощью вызова jQuery AJAX.

По умолчанию вызов $ .ajax, предоставляемый jQuery, не добавляет заголовок HTTP-запроса Accept-Encoding: gzip, необходимый для веб-сервера для ответа сжатыми данными.

Однако, когда я использую собственные методы jQuery для добавления заголовка, например:

$.ajax({url: 'http://foo.com/service.json',
        beforeSend: function(xhr) { 
            console.log('xhr set'); 
            xhr.setRequestHeader('Accept-Encoding', 'deflate') 
       } 
});

, в консоли браузера появляется следующая ошибка:

Refused to set unsafe header "Accept-Encoding"

Можно ли заставить jQuery выполнять вызовы AJAX для URL-адресов с включенным gzip / deflate?

Если нет, то это недостаток jQuery, com / winfx / 2006 / xaml / presentation "xmlns: x =" http: // schemas ....

Я определяю пользовательский вид для элемента управления Button в словаре ресурсов:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Style TargetType="Button" x:Key="BaseButtonStyle">
    <Setter Property="Background" Value="Blue"/>
  </Style>
</ResourceDictionary>

Затем я пытаюсь изменить стиль в окне где расположены кнопки.

<Window.Resources>
  <ResourceDictionary>
    <ResourceDictionary.MergedDictionaries>
      <ResourceDictionary Source="Dictionary.xaml"/>
      <ResourceDictionary>
        <Style TargetType="Button" BasedOn="{StaticResource BaseButtonStyle}">
          <Setter Property="Foreground" Value="Red"/>
        </Style>
      </ResourceDictionary>
      </ResourceDictionary.MergedDictionaries>   
    </ResourceDictionary>
</Window.Resources>

В дизайнере WPF я получил то, что ожидал. Синяя кнопка с красным текстом. com / winfx / 2006 / xaml / presentation "xmlns: x =" http: // schemas ....

Я определяю пользовательский вид для элемента управления Button в словаре ресурсов:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Style TargetType="Button" x:Key="BaseButtonStyle">
    <Setter Property="Background" Value="Blue"/>
  </Style>
</ResourceDictionary>

Затем я пытаюсь изменить стиль в окне где расположены кнопки.

<Window.Resources>
  <ResourceDictionary>
    <ResourceDictionary.MergedDictionaries>
      <ResourceDictionary Source="Dictionary.xaml"/>
      <ResourceDictionary>
        <Style TargetType="Button" BasedOn="{StaticResource BaseButtonStyle}">
          <Setter Property="Foreground" Value="Red"/>
        </Style>
      </ResourceDictionary>
      </ResourceDictionary.MergedDictionaries>   
    </ResourceDictionary>
</Window.Resources>

В дизайнере WPF я получил то, что ожидал. Синяя кнопка с красным текстом. Но во время выполнения оба стиля не применяются, и кнопка имеет цвета по умолчанию. Как я могу это исправить?

5
задан Andrey Gordeyev 23 September 2010 в 13:25
поделиться