Node.js + Backbone集合json

时间:2014-05-03 23:38:48

标签: javascript json node.js parsing backbone.js

我当前的项目中有一种奇怪的行为。我在后端使用Node.js,在前端使用Backbone.js。我的Node.js应用程序使用express来提供宁静的服务。如果我导航到路径 127.0.0.1:999/users ,一切都很好,可以正确解析json数据。 实际上我的前端看起来像这样:

//MODELS
var PersonList = Backbone.Collection.extend({
  url: "http://127.0.0.1:9999/users"
});

//VIEWS
var PersonListView = Backbone.View.extend({
  el : "#page",
  render: function(){
    var thisView = this;
    var personList = new PersonList();
    personList.fetch({
      success: function(users, xhr){
        $(thisView.el).html(users);
      },
      error: function(err)
      {
        console.log(err);
      }
    });
  }
});

我的后端看起来如下:

var express = require("express"); 
var app = express();

var users = [{id: 0,email: "user1@gmail.com"},
 {id: 1,email: "userxx@gmail.com"},
 {id: 2,email: "user123@gmail.com"}];

app.get("/users", function(request, response){
    response.send(users);
});

app.listen(9999);

获取功能不会触发成功事件:(。 我有什么想法吗?

解决: 问题在于后端。不接受主干请求原始标头。将以下代码添加到您的快速应用程序以使其工作。在生产中,请确保将允许的主机存储在单独的配置中。

app.use(function(req, res, next){
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "X-Requested-With, X-Authtoken, Content-Type");
    res.header("Access-Control-Allow-Methods", "HEAD, GET, POST, PUT, DELETE");
    next();
});

0 个答案:

没有答案