headers 在 ajax 调用中传递的 RequestVerificationToken 没有出现在 HttpContext.Current.Request.Headers 中

RequestVerificationToken passed in headers in ajax call doesn't appear in HttpContext.Current.Request.Headers

为了防止跨站点请求伪造,我在 filedownload 调用中将以下请求验证令牌与数据一起传递。 但我在 HttpContext.Current.Request.Headers 中看到,此标记不存在。 [我为此使用 jquery.fileDownload.js]

$.fileDownload("Account/downloadFile", {
httpMethod: 'POST',
headers: {
   "__RequestVerificationToken":  $(':input:hidden[name*="RequestVerificationToken"]').val() 
},
successCallback: function () {

},
failCallback: function (responseHtml, url) {

},
prepareCallback: function () {
    //logger.log(" File Downloaded ", "", "", "success");
}

});

我在 validateAntiforgeryToken 方法中看到的是 HttpContext.Current.Request.Headers["__RequestVerificationToken"] = null

有什么想法吗?请帮忙。

如果您想将令牌添加到 headers 而不是使用 headers 属性:

$.fileDownload("Account/downloadFile", {
    httpMethod: 'POST',
    headers: {
        '__RequestVerificationToken': $(':input:hidden[name*="RequestVerificationToken"]').val()
    }