【发布时间】:2013-11-02 09:34:15
【问题描述】:
我正在 Node.JS 中开发一个 REST Web 服务来与主干框架一起工作。
我已经使用 urlRoot:http://localhost:3000/users 定义了一个 Person 模型,并且我创建了一个请求处理程序,它在接收到一个发布请求时将这个人添加到数据库中。
app.post('/users', user.add(db));
exports.add = function(db){
return function(req,res){
console.log(req.body);
var name = req.body.name;
var age = req.body.age;
var sex = req.body.sex;
var job = req.body.job;
var peopleDb = db.get('people');
peopleDb.insert({
'name':name,
'age':age,
'sex':sex,
'job':job
},function(e,docs){
if(e){
console.log(e);
}else
{
res.setHeader('Content-Type','application/json');
res.setHeader('Access-Control-Allow-Origin','*');
res.setHeader('Access-Control-Allow-Methods','GET,PUT,POST,DELETE');
res.writeHead(200);
res.end(JSON.stringify(docs));
}
});
}
}
当我尝试执行代码时,我在控制台中得到了这个:
Origin http://localhost is not allowed by Access-Control-Allow-Origin.
我从其他答案中了解到,添加标题:Access-Control-Allow-Origin:* 和 Access-Control-Allow-Methods:GET,PUT,POST,DELETE 可以解决问题,但对我没有用。我也尝试将这些标头放在 .htaccess 文件中,但没有成功。
有人可以告诉我代码是否有问题或解决此问题的任何方法吗?
【问题讨论】:
标签: node.js backbone.js http-headers