我有一个Rails控制器,它将一些模型渲染为json。
@events = Event.all
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @events }
format.json { render :json => { :results => @events } }
end
输出看起来像这样:
{
"results":
[
{
"name":"test",
"created_at":"2011-03-23T13:32:57Z",
"latitude":60.0,
"location":null,
"updated_at":"2011-04-14T16:38:54Z",
"id":1,
"longitude":30.0,
"takes_place_at":"2011-03-23T13:32:00Z"
},
{
"name":"x",
"created_at":"2011-03-23T13:36:44Z",
"latitude":60.0,
"location":null,
"updated_at":"2011-03-23T13:36:44Z",
"id":2,
"longitude":30.0,
"takes_place_at":"2011-03-23T13:36:00Z"
},
{
"name":"Gruempi",
"created_at":"2011-03-24T14:00:32Z",
"latitude":60.0,
"location":null,
"updated_at":"2011-04-14T16:39:47Z",
"id":3,
"longitude":30.0,
"takes_place_at":"2011-03-24T14:00:00Z"
},
{
"name":"ba",
"created_at":"2011-04-10T22:40:07Z",
"latitude":60.0,
"location":"12,
14",
"updated_at":"2011-04-10T22:40:07Z",
"id":4,
"longitude":30.0,
"takes_place_at":"2011-04-10T22:36:00Z"
},
{
"name":"sfasdfs",
"created_at":"2011-04-10T22:44:55Z",
"latitude":60.0,
"location":"we're try to find you ...",
"updated_at":"2011-04-10T22:44:55Z",
"id":5,
"longitude":30.0,
"takes_place_at":"2011-04-10T22:42:00Z"
},
{
"name":"asdfsad",
"created_at":"2011-04-10T22:55:03Z",
"latitude":60.0,
"location":"we're try to find you ..asfd.",
"updated_at":"2011-04-10T22:55:03Z",
"id":6,
"longitude":30.0,
"takes_place_at":"2011-04-10T22:54:00Z"
}
]
}
我尝试使用sencha / extjs来使用该服务:
refresh = function() {
Ext.util.JSONP.request({
url: 'http://localhost:3000/search/by_date.json',
callbackKey: 'callback',
params: {
year:"2011",
month:"04",
day:"10",
uniqueify: Math.random()
},
callback: function(data) {
var events = data.results;
timeline.update(events);
}
});
};
而sencha只是不解析它。同时,它可以与Twitter等API调用一起使用。
有任何想法我做错了吗?或如何找到错误?
如果您正在执行JSONP请求,则需要将返回的JSON包装在GET请求中指定为参数的函数中,在这种情况下为“回调”。Sencha
touch将在内部处理该函数的命名,但是您需要记下传入的callbackKey选项,以便服务器可以正确响应。
请求http:// localhost:3000 / search / by_date.json?callback =
jsonP2343243243时
,预期的响应应包装在callback参数指定的函数中。该GET请求应产生以下JSON:
jsonP2343243243({ "results": [ ... ] });
这将导致该功能在浏览器解释时被调用,然后将调用AJAX的回调。在rails中,您需要将渲染更改为以下内容:
Rails <3.0:
format.js { render :js => params[:callback] + "(" + { :results => @events }.to_json + ");"}
滑轨> 3.0
format.js { render :json => { :results => @events }, :callback => params[:callback] }
好吧,我又回来了...另一个Selenium3.x/Geckodriver问题。 我目前有一个设置,通过browsermob-proxy路由所有来自selenium测试的网络流量,所以我的测试要求我给他们代理信息路由所有这些数据,以便以后我可以查询它。 尝试1:通过socks设置代理 此尝试将导致以下堆栈跟踪: 尝试2:通过JSON设置 它将产生以下堆栈跟踪: 用geckodriver和Selen
问题内容: 当我执行以下命令时,几秒钟后会被调用,并且每秒钟都会继续执行而不会出现任何问题: 但是,这将 立即 执行 , 并在第二次迭代时引发以下错误: 错误: 似乎是/正在某种程度上成为。有人可以解释为什么这是预期的行为(无论如何,我认为是这样)? 我可以很轻松地解决这个问题,但是我很好奇为什么它会这样工作-使得参数值的传递变得不那么方便,因为我无法在语句内部进行操作。 问题答案: 接受功能对象
问题内容: 我有产品,用户和喜欢的模特。用户可以喜欢产品。我正在尝试实现一个简单的“喜欢”按钮,单击该按钮即可使用户喜欢产品。然后,“喜欢”按钮转换为“不一样”按钮,从而允许用户对产品进行不一样。非常简单。 我已经为上述实现了模型/控制器逻辑。我对javascript / ajax不太满意,并且想知道实现上述功能的最佳方法是什么。我希望通过ajax处理喜欢/不喜欢的动作。我正在为我的应用程序使用R
问题内容: 是否可以在一个查询中将多个SQL LIKE通配符串在一起-像这样? 目的是查找同时包含通配符但没有特定顺序的记录。 问题答案: 正确的SQL语法是:
喜欢资讯 取消喜欢资讯 资讯喜欢列表 喜欢资讯 POST /news/{news}/likes Response Headers Status: 201 Created 取消喜欢资讯 DELETE /news/{news}/likes Response Headers Status: 204 No Content 资讯喜欢列表 GET /news/{news}/likes Respons
点喜欢 取消喜欢 喜欢的人列表 点喜欢 POST /feeds/:feed/like Response Status: 201 Created { "message": [ "操作成功" ] } 通知类型 { "channel": "feed:digg", // 通知关键字 "target": 325, // 动态id "content": "@2222 点喜欢了