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));

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...