小编Lee*_*Lee的帖子

是否有可能强制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万
查看次数

什么是相当于Ruby的"检查"的JavaScript?

在Ruby中,你可以做到foo.inspect并且无论类型如何,它都能为任何对象输出一些理智的东西.

如何在JavaScript中实现相同的功能?

javascript ruby debugging

12
推荐指数
2
解决办法
2282
查看次数

如何使用ruby和unix服务器截取网页截图?

我正在尝试以编程方式创建大量网页的缩略图,这些网页托管在我自己的基于ruby/rails的网站上.

我希望能够编写一个独立的ruby代码,看起来像这样:

require 'awesome-screenshot-maker'

items.each do |id|
  url = "http://foo.com/bar/#{id}"
  shooter = AwesomeScreenshotMaker.new(0.2) # thumbnails are 20% of original
  shooter.capture(url, "/images/thumbnail-#{id}.png")
end
Run Code Online (Sandbox Code Playgroud)

我需要在Linux,Solaris和Mac OS X上构建相当容易的awesome-screenshot-maker库(及其依赖项).理想情况下,它将使用单个"gem install"命令进行安装.

我花了一个下午探索各种选项,包括Moz snap shooter,webkit2pngrbwebkitgtk.它们都在正确的区域,但似乎都不适用于所有三个平台.

如果我愿意从我的rails应用程序(而不是网页)输出PDF,RMagick看起来像是一个可能的选项,但这让我觉得很糟糕.在Mac OS X上运行RMagic和imagemagick也很费力.

是否存在可以在三个平台上轻松设置的库?

ruby unix gtk screenshot rmagick

8
推荐指数
1
解决办法
9680
查看次数

为什么6.times.map在ruby 1.8.7中工作,而不是1.8.6

以下代码片段在Mac OS X上的1.8.7中工作正常,但在Ubuntu上的1.8.6中没有.为什么?有解决方法吗?

适用于1.8.7:

$ ruby --version
ruby 1.8.7 (2009-06-08 patchlevel 173) [universal-darwin10.0]
ltredgate15:eegl leem$ irb
>> 6.times.map {'foo'}
=> ["foo", "foo", "foo", "foo", "foo", "foo"]
>>
Run Code Online (Sandbox Code Playgroud)

但不是1.8.6:

# ruby --version
ruby 1.8.6 (2008-08-11 patchlevel 287) [i686-linux]
Ruby Enterprise Edition 20090610
# irb
irb(main):001:0> 6.times.map {'foo'}
LocalJumpError: no block given
        from (irb):1:in `times'
        from (irb):1
irb(main):002:0> 
Run Code Online (Sandbox Code Playgroud)

为什么会有区别?1.8.6的解决方法是什么?

ruby ruby-enterprise-edition

7
推荐指数
2
解决办法
3697
查看次数

我如何修补ruby的URI.parse方法

一些流行的博客网站通常在其URL中使用方括号,但ruby的内置URI.parse()方法会对它们产生阻碍,引发一个令人讨厌的异常,如:http://redmine.ruby-lang.org/issues/show/ 1466

我正在尝试编写一个简单的猴子补丁,它使用方括号优雅地处理URL.以下是我到目前为止的情况:

require 'uri'

module URI

    def self.parse_with_safety(uri)
        safe_uri = uri.replace('[', '%5B')
        safe_uri = safe_uri.replace(']', '%5D')
        URI.parse_without_safety(safe_uri)
    end

    alias_method_chain :parse, :safety

end
Run Code Online (Sandbox Code Playgroud)

但是在运行时会产生错误:

/Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/core_ext/module/aliasing.rb:33:in alias_method:NameError:模块'URI'的未定义方法'解析'

我怎样才能成功修补URI.parse?

ruby uri monkeypatching

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