相关疑难解决方法(0)

是否有可能强制jQuery为启用了gzip/deflate的URL进行AJAX调用?

我有一个愿意输出gzip/deflated数据的Web服务.我已经验证该服务将使用原始JSON或使用wget和curl的gzip'd JSON进行响应.

我想使用jQuery AJAX调用来使用这个Web服务.

默认情况下,jQuery提供的$ .ajax调用不会添加"Accept-Encoding:gzip"HTTP请求标头,这是Web服务器使用gzip压缩数据进行响应所必需的.

但是,当我使用jQuery自己的方法添加标头时,例如:

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

然后浏览器控制台中出现以下错误:

Refused to set unsafe header "Accept-Encoding"
Run Code Online (Sandbox Code Playgroud)

是否有可能强制jQuery为启用了gzip/deflate的URL进行AJAX调用?

如果没有,这是jQuery的缺点,还是AJAX更基本的东西?

ajax jquery gzip web-services deflate

22
推荐指数
1
解决办法
2万
查看次数

ajax post - 我想更改Accept-Encoding标头值

我正在使用jQuery ajax通过HTTP POST调用我的WCF服务.响应是GZIP编码的,这会导致我的环境出现问题.(见这个问题).如果响应不是GZIP编码,一切都很好.

所以看着Fiddler,我看到jQuery生成的查询有以下标题:

Accept-Encoding: gzip,deflate,sdch
Run Code Online (Sandbox Code Playgroud)

如果,通过fiddler,我将此值更改为None,则响应不会被压缩,这就是我想要的.我需要做的就是更改"Accept-Encoding"标头中的值.

似乎无法通过.ajax命令更改此标头值.(见本论坛帖子).

任何人都可以告诉我有什么选项可以更改此标头值.

这是我目前的尝试.我的headers参数似乎被忽略了.

    $telerik.$.ajaxSetup({
        accepts: 'application/json, text/javascript, */*'
    });

    var parameters = {
        "playerId": args.playerId
    };

    var dataInJsonFormat = '{ "playerId": ' + args.playerId + '}';

    var ajaxCallParameters = {
        accepts: 'application/json, text/javascript, */*',
        async: true,
        cache: false,
        contentType: "application/json; charset=utf-8",
        url: "../Services/CmsWebService.svc/SendUpdateRequestToPlayer",
        headers: { "Accept-Encoding" : "None" },
        type: "POST",
        data: dataInJsonFormat,
        dataType: 'json',
        error: function (jqXHR, textStatus, errorThrown) {
            var errorString …
Run Code Online (Sandbox Code Playgroud)

ajax wcf jquery header

9
推荐指数
3
解决办法
2万
查看次数

AppEngine gzip压缩

我正在尝试从GAE服务器gzip响应,但在Content-Encoding中收到null.

我有以下代码:

connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", 
          "application/json; charset=utf-8"); //"application/json; charset=utf-8"
connection.setRequestProperty("Accept-Encoding", "gzip");
connection.setRequestProperty("User-Agent", "gzip");
connection.setUseCaches (false);
connection.setDoInput(true);
connection.setDoOutput(true);

//write
//read

System.out.println("Content-Encoding " + connection.getContentEncoding());
Run Code Online (Sandbox Code Playgroud)

我已经读过,GAE服务器会自动压缩.那可能是什么问题呢?

java google-app-engine servlets

7
推荐指数
1
解决办法
2511
查看次数

标签 统计

ajax ×2

jquery ×2

deflate ×1

google-app-engine ×1

gzip ×1

header ×1

java ×1

servlets ×1

wcf ×1

web-services ×1