从 Backbone 发送发布请求.js返回跨域错误
Sending a post request from Backbone.js is returning a cross domain error
我正在使用express.js作为后端和骨干.js作为前端,MongoDB作为数据库。根据我传入的参数获取单个帖子或帖子集合没有问题,但是每当我尝试 POST 请求时,我都会收到错误。我已经厌倦了在我的模型上调用 .save(),但是,我遇到了跨站点域错误。这是我代码的一部分
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 请求提交发布数据,则必须将crossDomain
设置为 true
。
如果您希望在同一上强制跨域请求(例如 JSONP) 域中,将跨域的值设置为 true。这允许,对于 例如,服务器端重定向到另一个域。(添加的版本: 1.5)
http://api.jquery.com/jquery.ajax/
$.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.');
}
});
相关文章:
- 如何在d3.js中返回路径的y坐标
- Angular js-返回一个包含类似
- JS验证ajax返回的html中的表单数据
- JS变量返回的对象不是值
- 将复杂对象从angular js传递到web api,它总是返回404
- Morris.js无法显示ajax返回的数据
- 通过浏览器加载页面时触发加载脚本(js或jQuery)'s”;返回“;作用
- 如何使用 AJAX 返回 JS 值
- JSON字符串仍然返回JS中的[object object]
- 使用返回 JS
- ASP.net C# 从另一个线程返回 JS 警报
- 使用webpackurl加载程序加载svg会返回js文件
- 用html javascript创建一个简单的成本估算器.从HTML按钮调用JS函数.返回JS中的值
- AJAX-返回JS数组并在成功事件中使用它
- wordpresscontactform7插件在控制台上返回js错误
- 从PHP返回JS源代码
- 从D3函数返回js数据集
- 在返回js代码的php函数中传递一个php变量给javascript
- 返回JS函数的值,并将其用作输入按钮的值
- 如何在asp.net mvc中从控制器返回js自定义警报