.NET MVC 5アプリケーションに.Net 4.5.1を使用しています。アプリケーションはPOSTデータをサーバーに送るいくつかのjQuery ajax postメソッドを持っています。クロスサイトリクエストフォージェリ(XSRF)を防止するために、私は、コントローラ内HttpHeaderValidateAntiForgeryTokenが動作していませんasp.net mvc with ajax投稿
$(document).ajaxSend(function (event, jqXHR, ajaxOptions) {
if (ajaxOptions.type === 'POST') {
jqXHR.setRequestHeader('__RequestVerificationToken', $('input[name="__RequestVerificationToken"]').val());
}
});
、その後のすべてのAJAX POSTでトークンを送信_layout.cshtml
@Html.AntiForgeryToken()
またJavaScriptで次のように追加しましたアクションメソッドは、私が
[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult Save(MyModel model)
{
//save and return json data
}
しかしValidateAntiForgeryTokenは
例外をthorwingています必要な偽造防止フォームフィールド "__RequestVerificationToken"は ではありません。
私は、Ajax POSTごとにhttpヘッダーに__RequestVerificationToken
が追加されていることを確認しました。
ASP.NETコアを使用して開発された別のアプリケーションがありますが、同じ機能があります(ただし、__RequestVerificationToken
の代わりにRequestVerificationToken
です)、ASP.NETコアで動作しています。
ヘッダーにトークンが含まれている場合、同じものがASP.NET MVCで動作しないのはなぜですか? ASP.NET CoreとASP.NET MVC 5のValidateAntiForgeryTokenに違いはありますか?
可能な重複やHtml.AntiForgeryTokenにトークン
追加トークンを追加します)](http://stackoverflow.com/questions/4074199/jquery-ajax-calls-and-the-html-antiforgerytoken) – VahidN
@VahidNそれは同じ問題ではありません。私は前に提供されたリンクを通過しました。 – LP13