我正在尝试使用backbone.js来包装Jenkins REST API。
要获取工作详细信息,请在以下URL上执行GET:
我非常简单的骨干应用程序如下所示:
$(function () {
var Job = Backbone.Model.extend({
defaults:{
displayName:'not set'
}
});
var AppView = Backbone.View.extend({
el:$("#hudApp"),
initialize:function () {
var job = new Job;
job.url = 'https://jenkins.example.com/jenkins/job/test-job/api/json/?jsonp=?';
job.fetch({dataType:"jsonp"});
alert(job.get('displayName'));
});
});
var app = new AppView;
});
我可以看到HTTP请求命中我的Jenkins服务器,并收到如下响应:
jQuery18207471012645401061_1351262357807(
{
description: "build a nice test job",
displayName: "test-job",
}
)
但是,我的模型没有得到更新(alert()
始终显示“未设置”)。
有人能发现我做错了吗?
答案 0 :(得分:2)
完成操作员错误。显然,AJAX中的“A”代表“异步”...
我只需要将我的提取代码更改为:
job.fetch({
dataType:"jsonp",
success: function(model, response) {
alert(model.get('displayName'));
}
});
抱歉这个愚蠢的问题。希望这对谷歌至少有用,因为我很难找到如何使用Backbone和JSONP的例子。