Razor Page中的AJAX


1.由於Razor Pages自帶提供防偽令牌/驗證,用來防止跨站點請求偽造(稱為XSRF或CSRF),所以和MVC框架中API使用方式有稍許的不同。

2.所以在我們使用Razor Pages中的form表單提交數據時,框架會自動幫我們生成一個隱藏的Input,並在我們提交表單時加入在請求報文頭中。

<input name="__RequestVerificationToken" type="hidden" value="CfDJ8P-uB18ojyNBnPHyBPpQMcjMi3bb01uB9VeJk0C6GO2bVdSnt7aSGr63GOKObkLt7HBZqhVPvlmS9GLn8-To2XHw5F1L3ARqXFsXQhqpMSnuVSRBpYkZo6-7Gtv3CJrUTR6uRZdEh5ZwKsLpZSqdZEs" />

3.然而我們使用AJAX向一個post方法提交數據時,就會發現服務器端返回400狀態碼,這是因為我們在請求頭並未攜帶token過去,所以我們應該這樣寫

 @Html.AntiForgeryToken()    //在html頁面上生成隱藏的input,token就存放在里面,當然要是你的頁面上有form表單也就不用寫上這個

 

 $.ajax({
                    method: 'post',
                    url: "/?handler=Data",
                    headers: {
                        RequestVerificationToken:
                            $('input:hidden[name="__RequestVerificationToken"]').val()
                    },
                    success: function (data) {
                            console.log(data);
                        }, error: function (error) {
                            console.log(error);
                        }
                    })

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM