【发布时间】:2011-12-08 23:50:47
【问题描述】:
我有一个超级简单的 Backbone 模型/集合,它围绕着 facebook 提要。
window.Story = Backbone.Model.extend({});
window.Stories = Backbone.Collection.extend({
model: Story,
url: 'https://www.facebook.com/feeds/page.php?id=186424828078649&format=json&callback=?',
parse: function(response) {
console.log(response);
return response.entries;
}
});
stories = new Stories();
stories.fetch();
这会导致 Chrome 中出现语法异常(“Unexpected token :”)或 Firefox 中的无效标签 "title": {。
Chrome 消息有点神秘,但 Firefox 消息似乎表明正在返回 JSON 响应。 parse() 函数永远不会被调用(据我所知,我已经设置了一个断点并添加了一个 console.log 语句,但我什么也没看到),那么 Backbone 还需要知道什么为了解析 JSON?
我的第一个想法是这可能是一个跨域问题,但我使用的是&callback=?,它应该确保 $.ajax 使用 jsonp。我打赌这是可行的,因为 Firefox 将第二行正确识别为"title": {。
有什么想法吗?
PS,如果你想测试一下,jsfiddle 位于http://jsfiddle.net/KcE9L/。
【问题讨论】: