嗨,我没理解为什么这不起作用。 我正在尝试向我的客户端发送一个简单的json对象,它通过骨干提取接收数据。 它适用于json测试链接,但不知道如何不与本地nodeJs服务器
Server.js
var express = require('express'),
app = express();
app.engine('html', require('ejs').renderFile);
app.set('/js', express.static(__dirname + "/js"));
app.get('/', function(req, res) {
var obj = { "foo" : "bar" };
res.json(obj)
});
app.listen(8888);
客户端:
define('APP',
["jquery",
"underscore",
"backbone"],
function() {
var APP = {
init: function(){
getModel();
}
}
function getModel(){
var Collection = Backbone.Collection.extend({
// http://localhost:8888
//http://echo.jsontest.com/key/value/one/two <-- works
url: 'http://localhost:8888',
});
myCollection = new Collection();
myCollection.fetch({
error: function (collection, response) {
console.log('error', response);
},
success: function (collection, response) {
console.log('success', response);
}
});
}
APP.init();
return APP;
});
我没有得到客户方面的回复。
感谢您帮助我
* 编辑:我浏览了类似的问题,但没有人以某种方式工作*
答案 0 :(得分:2)
我发现在这种情况下会出现什么问题,我会回答我自己的问题,因为其他人可能会遇到同样的问题。
问题是,标头未设置为Access-Control-Allow-Origin。 由于我只使用firefox,我没有看到这个错误,但是chrome给我看了。
这是server.js的工作代码
var express = require('express'),
app = express();
app.engine('html', require('ejs').renderFile);
app.set('/js', express.static(__dirname + "/js"));
var obj = { "foo" : "bar" };
app.get('/', function(req, res) {
res.contentType('application/json');
res.setHeader("Access-Control-Allow-Origin", "*");
res.json(obj)
});
app.listen(8888);