سلام
من می خواهم عملیات ثبت را از طریق ajax انجام بدهم اما برای کنترلر وقتی ValidateAntiForgeryToken قرار میدهم ajax مربوطه اصلا کار نمیکند و وارد کنترلر نمیشود اما وقتی ValidateAntiForgeryToken استفاده نمیکنم ajax درست کار میکند برای حل مشکل باید چکارکنم
$.ajax({ url: '@Url.Action("Create", "Home")', type: "Post", data: { id: selectId } }).done(function (result) { $("#bodyModal").html(result); });
باتشکر
کاملا منطقی است چون شما توکنی که توسط Html.AntiForgeryToken تولید می شود را به کنترلر نمی فرستید. زمان که صفت ValidationAntiForgeryToken را بر روی اکشن خود قرار می دید آن اکشن باید یک توکن توسط شما دریافت کند و سپس به کار خود ادامه بدهد. برای حل این مشکل باید ابتدا توسط Html.AntiForgeryToken توکن مورد نظر را تولید کنید که آن توکن درون یک input از نوع hidden قرار می گیرد. حال هنگام ارسال درخواست ajax آن را دورن data خود قرار بدید.
var token = $("input[name='__RequestVerificationToken']").val(); $.ajax({ url: '@Url.Action("Create", "Home")', type: "Post", data: { id: selectId, __RequestVerificationToken: token } }).done(function (result) { $("#bodyModal").html(result); });
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)