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

前端之家收集整理的这篇文章主要介绍了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.f2er.com/js/152810.html

猜你在找的JavaScript相关文章