微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JavaScript – 无法在Backbone集合中获取JSON

我有遵循Backbone.js代码
var List = Backbone.Collection.extend({
    model: Item,url: '/api/items',});

然后在我看来,我试图从API中获取JSON并填充模型

this.collection = new List();

var that = this;
this.collection.fetch({
    success: function () {
        that.render();
        console.log('Fetch successful!');
    },error: function() {
        console.log('Failed to fetch!');
    }
});

但是,提取不起作用,并且触发“无法获取”!信息.任何人都可以看到我做错了吗?如果我去浏览器中的api /项目,我会得到提示下载JSON文件,所以它绝对在那里,当我打开它的新行分隔符.以下是发送回JSON的api代码片段

res.writeHead(200,{
    'Content-Type': 'application/x-json-stream'
});

setTimeout(function () {
    var i;
    for (i=0; i<limit; i+=1) {
        res.write(JSON.stringify(createrandomItem(i+skip,sort)) + '\n');
    }
    res.end();
},100 + Math.floor(Math.random() * 3000));

另外当我使用开发人员工具来检查发送到API的请求时,我回复的响应似乎是随机字符,我得到错误SyntaxError:JSON.parse:Unexpected character”

eyJpZCI6IjAtd202MzNjYTF0Y3ZqOWs5Iiwic2l6ZSI6MTYsInByaWNlIjo5MzgsImZhY2

解决方法

你的响应写循环生成无效的json字符串,因为它只是连接json对象.

您可以收集数组中的所有对象并将其如下所示:

setTimeout(function () {
    var i,data = [];
    for (i=0; i<limit; i+=1) {
        data.push(createrandomItem(i+skip,sort));
    }

    res.write(JSON.stringify(data));
    res.end();
},100 + Math.floor(Math.random() * 3000));

原文地址:https://www.jb51.cc/js/152810.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐