Tôi có theo Backbone.js đangKhông thể tìm nạp JSON Trong bộ sưu tập Backbone
var List = Backbone.Collection.extend({
model: Item,
url: '/api/items',
});
và sau đó theo quan điểm của tôi, tôi đang cố gắng để làm như sau để lấy JSON từ API và cư trú trong mô hình
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!');
}
});
Tuy nhiên tìm nạp không hoạt động và kích hoạt tính năng tìm nạp "Không tìm nạp được!" thông điệp. Bất cứ ai có thể nhìn thấy bất cứ điều gì tôi đang làm sai? Nếu tôi truy cập vào api/items
trong trình duyệt của mình, tôi được nhắc tải xuống tệp JSON để chắc chắn có tệp đó và khi tôi mở nó theo giới hạn mới của nó. Dưới đây là một đoạn mã api đó gửi lại JSON
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));
Ngoài ra khi tôi sử dụng công cụ phát triển để kiểm tra các yêu cầu được gửi tới API phản ứng tôi nhận được lại chỉ có vẻ là nhân vật ngẫu nhiên và tôi nhận được lỗi "lỗi Cú pháp: JSON.parse: nhân vật bất ngờ"
eyJpZCI6IjAtd202MzNjYTF0Y3ZqOWs5Iiwic2l6ZSI6MTYsInByaWNlIjo5MzgsImZhY2
Chỉ thử 'res.send (200, {mảng/đối tượng của bạn/etc})' – benhowdle89
Tôi không chắc chắn nhưng có thể để kiểu nội dung JSON trực tuyến không được hỗ trợ bởi triển khai JS trình duyệt của bạn không? AFAIK, Backbone sử dụng đối tượng 'XMLHttpRequest' đơn giản để xử lý yêu cầu các bộ sưu tập. Điều gì sẽ xảy ra nếu bạn sử dụng kiểu 'application/json' đơn giản? – VisioN
Tôi đã thử thay đổi kiểu nội dung thành 'application/json' nhưng tôi nhận được kết quả tương tự.Ngoài ra tôi nên chỉ ra rằng nếu có thể tôi không muốn thay đổi mã phía máy chủ. – Bender