$.ajax({ type: "POST", url: "/Account/Login", beforeSend: function (xhr) { xhr.setRequestHeader("X-CSRF-TOKEN", $('input:hidden[name="__RequestVerificationToken"]').val()); }, data: { id : test1 id2: test2 }, }) .done(function (resp) { alert(":D") }) .fail(function (jqXHR, textStatus, err) { alert(err.message); }); |
不確定是不是Razor pgae限定,如果直接用的話會跑400錯誤,因為會擋來路不明的POST所以需要加上 beforeSend去抓Token
services.AddAntiforgery(o => o.HeaderName = "X-CSRF-TOKEN"); |
HeaderName要和setRequestHeader放的字串相同
如果是直接給data資料不是透過表單傳值的話記得加上這個(在這邊卡好久QQ
@Html.AntiForgeryToken() |
這樣HTML裡面才可以有個隱藏的Token欄位