asp.net-mvc - 将 RequestVerificationToken 从 Angular js 传递到 mvc Controller

标签 asp.net-mvc angularjs angularjs-scope antiforgerytoken csrf-protection

我想将主页中的 RequestVerificationToken 传递给用 ValidateAntiforgeryToken 属性修饰的 Controller 操作。

我的基本 View 如下:

@{
    Layout = null;
}
@Html.AntiForgeryToken()

在 html 中呈现的标记为:

<input name="__RequestVerificationToken" type="hidden" value="9DLRgZ1UYKCRdDxhIx0qJ9fovUJafQ8tvfkd21M6hJHQBRnbvNLu5BlYwZXwGUUXmkGfmB5cFMsgaH0rbd7OorW9WVC3XvQYGdbki3KoxMaYxfEf7FLELnm3IDF95bjET83Dls1ZnLNAoLxFO_2SbPkwg7lJjKF6F4vPWredPYM1" class="ng-scope">

我正在尝试在 httpExecute 函数中传递 token ,如下所示:

this.httpExecute = function (opt) {
$http.defaults.headers.common['_RequestVerificationToken'] = $(':input:hidden[name*="RequestVerificationToken"]').val();        
    return $http({
        method: opt.method,
        url: opt.url,
        params: opt.params,
        data: opt.data
    })
     .error(function (response) {
         if (response.IsTokenExpired == true) {
             $user.logoutsession();
         }
     });
}

但是我得到的标记值为 null/undefined。 我在这里做错了什么? 请帮忙。 谢谢

最佳答案

是的,如果我像下面这样传递它,我就得到了正确的结果:

return $http({
        method: opt.method,
        url: opt.url,
        params: opt.params,
        data: opt.data,
        headers: {
            '__RequestVerificationToken': $(':input:hidden[name*="RequestVerificationToken"]').val()
        }
    })

关于asp.net-mvc - 将 RequestVerificationToken 从 Angular js 传递到 mvc Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27310334/

相关文章:

asp.net-mvc - Sammy.js 和 Knockout.js => 没有模板的模板?

c# - AnonymousType 无法序列化。考虑用 DataContractAttribute 属性标记它

javascript - Angular UI-Router 不显示 html 内容,但定向到正确的路径。没有错误,但 ui-view 不起作用

javascript - 作用域被破坏时是否应该删除 angular $watch?

c# - 是否可以在 ASP.NET MVC 5 ViewModel 中同时使属性可为空且必需?

c# - 如何在返回 View 之前修改 Controller 中的查询字符串

jquery - AngularJS 和 jQuery : Splitting textarea into multiple textareas

1.7.0 上的 AngularJS ngSanitize 错误

javascript - ionic : TypeError: Cannot read property 'ready' of undefined

AngularJS : How to pass data from directive to controllers function