Razor Page中的AJAX

Posted rookiedebug

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
                        
                    )

 

以上是关于Razor Page中的AJAX的主要内容,如果未能解决你的问题,请参考以下文章

Razor Page Call Modal From Code Behind on post async

Asp.Net Core Razor Page PUT Handler 模型绑定器未绑定来自 ajax put 上的 java 脚本的序列化表单

Razor Pages OnPost 方法中的 Page() 方法有啥作用?

Razor中的Jquery Ajax Post Object响应400错误代码

复选框单击 Razor 页面 AspNetCore 2.2 中的表单提交

如何使字形图标成为 Razor 中的 ajax 链接文本?