我正在使用Backbonejs(1.0.0)开发一个项目,我正在尝试获取模型。好吧,如果我错了,请纠正我,但获取模型意味着从服务器获取数据并更新模型属性。那么,我做了什么:
模特:
var Lead = Backbone.Model.extend({
idAttribute : "project_id",
defaults: {
ws_qs : 'toto'
}
});
行动:
/* this.model comes from a collection, which has been fetched earlier.
So this.model contains correct data. I just want to refresh from the server. */
var tmpModel = this.model;
this.model.set({ws_qs : "youpi"}, {silent:true});
this.model.fetch({
success : function (model) {
// do something
}
});
Fetch使用正确的URL生成XHR调用。
一些想法:在Chrome debuger中,XHR调用响应为空,但在浏览器中打开xhr调用url显示正确的JSON。
花了6个小时在那个bug上...有人可以帮助我吗? 感谢。
答案 0 :(得分:1)
如果Chrome调试器显示对XHR的空响应,则表明服务器行为不当。你有权访问服务器端代码吗?服务器代码可能正在查看请求标头并在X-Requested-With
标头为XMLHttpRequest
时错误地响应?
尝试使用此命令行curl -v -H "X-Requested-With: XMLHttpRequest" <url>
并查看响应标头和正文的外观。
答案 1 :(得分:0)
我认为服务器端可能有问题。检查响应设置,如果你想得到json响应,content-type应该是“application / json”。在你的案例中它是“text / html”或其他东西。