我有一个愿意输出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更基本的东西?
在Ruby中,你可以做到foo.inspect并且无论类型如何,它都能为任何对象输出一些理智的东西.
如何在JavaScript中实现相同的功能?
我正在尝试以编程方式创建大量网页的缩略图,这些网页托管在我自己的基于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,webkit2png和rbwebkitgtk.它们都在正确的区域,但似乎都不适用于所有三个平台.
如果我愿意从我的rails应用程序(而不是网页)输出PDF,RMagick看起来像是一个可能的选项,但这让我觉得很糟糕.在Mac OS X上运行RMagic和imagemagick也很费力.
是否存在可以在三个平台上轻松设置的库?
以下代码片段在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的解决方法是什么?
一些流行的博客网站通常在其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 ×4
ajax ×1
debugging ×1
deflate ×1
gtk ×1
gzip ×1
javascript ×1
jquery ×1
rmagick ×1
screenshot ×1
unix ×1
uri ×1
web-services ×1