在寫jQuery 的AJAX 的時候 response 給我400 參數也都對就是進不到controller的程式碼
上網照了一下 原來是header 少了RequestVerificationToken
如下取得RequestVerificationToken 的值 然後在AJAX的header加上RequestVerificationToken就可以了
var t = $("input[name='__RequestVerificationToken']").val();
function () {
$.ajax
({
url: "XXX",
headers:
{
"RequestVerificationToken": t
},
method: "POST",
data: { xxx: xxx,}
}
);
});
然後這樣正常之後 然後 同一頁面 顯示另一個資料時竟然又出現400
用開發者工具的Network 看了一下 竟然header的token沒出現 不是一樣的程式嗎?
原來這個token是因為在Program.cs有寫了
builder.Services.AddControllersWithViews(options => {
options.Filters.Add(new AutoValidateAntiforgeryTokenAttribute());
});
但是要有form 才會出現這個token 剛好我換一筆資料並沒有產生任何form 所以就沒有token了 找個地方加上
<form method="post">
</form>
就正常了
沒有留言:
張貼留言