Javascript 从Backbone.js发送post请求将返回跨域错误
我使用express.js作为后端,backbone.js作为前端,MongoDB作为数据库。我可以根据传入的参数获取单个帖子或帖子集合,但是每当我尝试一个帖子请求时,我都会得到一个错误。我已经厌倦了在我的模型上调用.save(),但是,我得到了一个跨站点域错误。 这是我的部分代码Javascript 从Backbone.js发送post请求将返回跨域错误,javascript,backbone.js,Javascript,Backbone.js,我使用express.js作为后端,backbone.js作为前端,MongoDB作为数据库。我可以根据传入的参数获取单个帖子或帖子集合,但是每当我尝试一个帖子请求时,我都会得到一个错误。我已经厌倦了在我的模型上调用.save(),但是,我得到了一个跨站点域错误。 这是我的部分代码 var Post = Backbone.Model.extend({ url: "/posts/new" }); var Posts = Backbone.Collection.extend({ url:
var Post = Backbone.Model.extend({
url: "/posts/new"
});
var Posts = Backbone.Collection.extend({
url: "/categories/all"
});
var PostView = Backbone.View.extend({
model: new Post(),
template: JST["post"],
new_template: JST["new_post"],
el: $(".page"),
events: {
"click .to_category": "updateCurrentCategory",
"submit .new_post": "create"
},
create: function (e){
e.preventDefault();
showLoader();
console.log("subbmited");
this.model.save();
hideLoader();
}
}
您需要在express.js应用程序标题部分中包含跨域策略:
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
app.get('/', function(req, res, next) {
// Handle the get for this route
});
然后,如果使用ajax请求提交post数据,则必须将跨域
设置为真
如果您希望在同一服务器上强制执行跨域请求(如JSONP)
域,将crossDomain的值设置为true。这就允许
例如,服务器端重定向到另一个域。(新增版本:
(1.5)
在将上述代码放入服务器文件和主干文件之后,我仍然存在同样的问题。在传入crossDomain:true时,我还尝试了backbone.save()函数,甚至尝试了数据类型“jsonp”也包括这个:
res.header('Access-Control-Allow-Methods'、'GET、PUT、POST、DELETE、OPTIONS')代码>谢谢你的帮助,但仍然没有骰子。到底是什么错误。。?
$.ajax({
type: 'POST',
url: 'your/url',
crossDomain: true, // set it to `true`
dataType: 'json',
success: function(responseData, textStatus, jqXHR) {
console.log('success');
},
error: function (responseData, textStatus, errorThrown) {
alert('POST failed.');
}
});