前往
大廳
主題

RazorPage ajax post

伶乃 | 2022-07-25 21:39:17 | 巴幣 2 | 人氣 148

$.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);
   });
ajax的get post有兩種寫法,另一種聽說有時候會出bug還沒試過,這邊先貼用過的
不確定是不是Razor pgae限定,如果直接用的話會跑400錯誤,因為會擋來路不明的POST所以需要加上 beforeSend去抓Token

services.AddAntiforgery(o => o.HeaderName = "X-CSRF-TOKEN");
Program的地方記得幫服務註冊
HeaderName要和setRequestHeader放的字串相同

如果是直接給data資料不是透過表單傳值的話記得加上這個(在這邊卡好久QQ
@Html.AntiForgeryToken()
這樣HTML裡面才可以有個隱藏的Token欄位

創作回應

相關創作

更多創作