【发布时间】:2015-12-06 05:50:23
【问题描述】:
我有这样的要求,当我发送请求时,CSRF-token 应该与它一起发送。我探索了一些 SO 问题,但我找不到解决方案。
我已经编写了如下代码来在发送请求时添加令牌,
var send = XMLHttpRequest.prototype.send,
token = $('meta[name=csrf-token]').attr('content');
XMLHttpRequest.prototype.send = function(data) {
this.setRequestHeader('X-CSRF-Token', "xyz12345");
//this.setRequestHeader('X-CSRF-Token',getCSRFTokenValue());
return send.apply(this, arguments);
}
这工作正常,但现在我需要在函数中添加 CSRF-Token 来代替 xyz12345。
我已经尝试过如下的 ajax 函数。 `
$.ajax({
type: "POST",
url: "/test/"
//data: { CSRF: getCSRFTokenValue()}
}).done(function (data) {
var csrfToken = jqXHR.getResponseHeader('X-CSRF-TOKEN');
if (csrfToken) {
var cookie = JSON.parse($.cookie('helloween'));
cookie.csrf = csrfToken;
$.cookie('helloween', JSON.stringify(cookie));
}
$('#helloweenMessage').html(data.message);
});
但它还没有工作。 所以我的问题是: 如何获取 js 端的 CSRF-Token Value?
【问题讨论】:
-
问题是什么?问题是如何将 CSRF 标头或值放入 cookie 中?
-
@limelights,我现在有 CSRF 令牌作为响应,同样的令牌我也想传递请求,所以,只是想获得
CSEF-Token的值。这里的 ajax 函数不是我的。它被采取了。 -
通过添加这个:
token = $('meta[name=csrf-token]').attr('content');我得到token未定义。
标签: javascript jquery csrf wavemaker