在ajax调用中传入头文件的RequestVerificationToken没有出现在HttpContext.Current.Request.Headers中

时间:2015-01-06 04:20:29

标签: jquery ajax asp.net-mvc-4 download

为防止跨站点请求伪造,我在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

有什么想法吗?请帮忙。

1 个答案:

答案 0 :(得分:0)

如果要将标记添加到标题中,请使用headers属性:

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