在Ajaxpost ASP.NETMVC中包含防偽造令牌我在Ajax的AntiForgeryToken上遇到了麻煩。我正在使用ASP.NETMVC 3。jQueryAjax調(diào)用和Html.antiForgeryToken()..現(xiàn)在正在使用該解決方案傳遞令牌:var data = { ... } // with token, key is '__RequestVerificationToken'$.ajax({
type: "POST",
data: data,
datatype: "json",
traditional: true,
contentType: "application/json; charset=utf-8",
url: myURL,
success: function (response) {
...
},
error: function (response) {
...
}
});當(dāng)我移除[ValidateAntiForgeryToken]屬性來查看數(shù)據(jù)(帶有令牌)是否作為參數(shù)傳遞給控制器,我可以看到它們正在被傳遞。但出于某種原因A required anti-forgery token was not supplied or was invalid.當(dāng)我將屬性放回時,仍然會彈出消息。有什么想法嗎?編輯反偽造令牌是在表單中生成的,但我不使用Submit操作來提交它。相反,我只是使用jQuery獲取令牌的值,然后嘗試Ajax發(fā)布該值。下面是包含令牌的表單,位于頂部母版頁:<form id="__AjaxAntiForgeryForm" action="#" method="post">
@Html.AntiForgeryToken()</form>
3 回答

慕絲7291255
TA貢獻1859條經(jīng)驗 獲得超6個贊
@Html.AntiForgeryToken()
__RequestVerificationToken
<script type="text/javascript"> function gettoken() { var token = '@Html.AntiForgeryToken()'; token = $(token).val(); return token; }</script>
$.ajax({ type: "POST", url: "/Account/Login", data: { __RequestVerificationToken: gettoken(), uname: uname, pass: pass }, dataType: 'json', contentType: 'application/x-www-form-urlencoded; charset=utf-8', success: successFu,});
[ValidateAntiForgeryToken]
- 3 回答
- 0 關(guān)注
- 423 瀏覽
添加回答
舉報
0/150
提交
取消