环境:express 4、jquery、krakenjs、font-awesome
在 controllers/products/index.js 中
module.exports = function (router) {
router.post('/add',function(req,res){
// do something
});
};
在 html 文件中,用户单击图标并将产品添加到购物车
{?products}
{#products}
<ul id="{.id}">
<li class="add"><i class="fa fa-plus"></i></li>
</ul>
{/products}
{/products}
对于每个产品,下面的脚本是做ajax post到后端。
$('.add').click(function(e){
var _id = this.parentElement.id;
$.ajax({
url: "/products/add",
type: 'POST',
contentType: 'application/json',
dataType: 'json',
data: JSON.stringify({
id: _id
})
});
});
然后服务器响应 500(内部服务器错误)并声明“错误:CSRF token 不匹配”。在没有提交表单的情况下进行 ajax 调用时,我是否需要在 ajax post 中插入 csrf token 或消除 token 验证。
最佳答案
Krakenjs 使用 Lusca 用于 crsf 保护。
Lusca 将 crsf _token
存储在 req.locals
中。
此外,将 View 中的 crsf 标记设置为隐藏/数据属性,并将其作为 ajax 帖子的一部分。
关于jquery - 使用nodejs express的ajax帖子的CSRF token 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29553624/