【发布时间】:2014-02-19 19:18:20
【问题描述】:
我有点挣扎。
我的 Sinatra Web 服务器使用 Rack 作为中间件,因为我需要多个 Sinatra 的应用程序。
应用程序将是一个返回 json 响应的 REST API,所以在我的 Sinatra 应用程序中我有类似的东西:
get "/:product/items" do
content_type :json
## This will get you a JSON response
get_items("product")
end
如果你在浏览器中访问 http://myapp/product/items/ 我会得到 json 响应
但是现在当我尝试从 JQuery 使用这个 api 时
jQuery.getJSON("//myapp/product/items", populate);
我在控制台日志中得到一个空响应
这些是标题:
Age 0
Cache-Control public, max-age=1800
Connection Keep-Alive
Content-Length 1443
Content-Type application/json;charset=utf-8
Date Wed, 19 Feb 2014 19:11:12 GMT
Server WEBrick/1.3.1 (Ruby/2.0.0/2013-11-22)
X-Content-Digest d55b64d8ec2c3e349fa799d3f15ae0f482850182
X-Content-Type-Options nosniff
X-Rack-Cache miss, store
Request Headers
Accept application/json, text/javascript, */*; q=0.01
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.5
Host localhost:9292
Origin http://localhost
Referer http://localhost/index.htmk
User-Agent Mozilla/5.0 (X11; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0
如果您检查标头,您将看到带有 content-Type: json 和内容长度的良好响应,但在响应正文中没有任何内容。
如果我使用
Jquery.getJSON("//myapp/product_name/items?callback=?", populate)
工作......即使这样我也不想这样做,因为我想缓存响应一个小时,如果我使用回调=?我收到了一个 Jquery 响应,但我不希望这样,因为它会生成一个随机数来引用我将要使用的函数。
所以我不确定响应是否有什么问题,还是我遗漏了什么?
谢谢
【问题讨论】: