当前位置: 首页 > 面试题库 >

是否可以强制jQuery对启用了gzip / deflate的URL进行AJAX调用?

都昊乾
2023-03-14
问题内容

我有一个愿意输出gzip /压缩数据的Web服务。我已验证该服务将使用wget和curl使用原始JSON或gzip的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') 
       } 
});

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

Refused to set unsafe header "Accept-Encoding"

是否可以强制jQuery对启用了gzip / deflate的URL进行AJAX调用?

如果不是,这是jQuery的缺点,还是AJAX的更基本的功能?


问题答案:

浏览器会自动添加适当的接受编码标头,包括在XHR请求上。您不需要在DOM / JS级别上执行此操作。



 类似资料:
  • 问题内容: 现在,我试图调用已在ASP.NET MVC应用程序(即)中定义的启用AJAX的Web服务。但是该服务从未在我的javascript函数中调用。 如果我在非ASP.NET MVC应用程序中尝试该调用AJAX Web服务的相同技术,则可以正常工作,因此它使我怀疑ASP MVC路由在尝试进行AJAX Web服务调用时是否会以某种方式干扰事物。 您是否知道为什么没有调用我的Web服务?下面的代

  • 问题内容: 我有以下代码将nvarchar转换为整数: 但是,我无法控制参数@value,因此代码可能会失败。无论如何,在进行转换之前是否要检查是否可以进行转换? 问题答案: 好吧,在SQL Server 2012中,您可以使用新的TRY_CAST(),但在SQL Server 2008中,您应该能够使用ISNUMERIC(),然后包括对未通过该测试的值进行处理。

  • 问题内容: 我不想使用jQuery,但我想使用Ajax进行文件上传。那可能吗? 如果是这样,我在哪里可以找到有关信息/教程? 问题答案: 不,无法使用javascript执行此操作。 但是,为了给人“ AJAX”的感觉,您可以向隐藏的iframe提交表单,然后将脚本结果输出到其中,然后从那里进行处理。Google 并从那里开始。 如果您使用的是jQuery,并且您的表单中包含任何文件字段,也可以使

  • 问题内容: 是否可以发送jQuery.ajax调用或等效调用而没有任何形式的响应?当我使用onbeforeunload命令离开页面时,我想在服务器上触发一些操作,但这不是我需要反馈给客户端的操作,因此我只想发送该命令而不等待响应。 那可能吗? 问题答案: 每个请求都有一个响应。 即使服务器抛出错误,响应也会返回错误。 如果您只想不添加回调,则可以忽略响应。

  • 在crosswalk中,可以使用cordova插件 而cordova inAppBrowser似乎工作得很好。但它仍然使用旧的android浏览器,而不是crosswalk chromium(因此不支持所需的HTML5功能)。 我可以通过检查user-agent(例如: