none
asp.net core 3 [ValidateAntiForgeryToken] ajax请求 400错误 RRS feed

  • 问题

  • [ValidateAntiForgeryToken]引起的问题:

    网站发布到iis后, 刚开始连接网站时,一切正常。

    过一段时间一直提示 400 bad request 错误,

    重新连接网站后,又一切正常。

    错误一直在反复,这个问题如何能解决?

    ctrl+f5调试时,一直正常运行

    操作系统:windows 10 专业版

    web服务器:iis 10.0.19041.322

    2020年7月2日 3:32

全部回复

  • Hello,

     

    首先你需要在使用ajax发起请求的时候,检查一下是否有设置RequestVerificationToken的请求头。接下来,你还需要确认你的cshtml文件里@Html.AntiForgeryToken()


     $.ajax({
                    url: 'url',
                    type: 'POST',
                    headers : {
                      RequestVerificationToken:
                          $('input:hidden[name="__RequestVerificationToken"]').val()
                    },                   
                    data: yourdata,
                    contentType: 'application/json; charset=utf-8',
                    dataType: 'json',
                    async: true,
                    success: function (data) { localSuccess(data); onSuccessFunc(data); }
                });

    希望这个对你有帮助。

    Best regards,

    Sean

    2020年7月22日 7:11
  • 我的问题不是一直在发生 400 bad request。

    ctrl+F5 调试时,一直正常运行,不管几天几夜。

    网站发布到iis后, 刚开始连接网页时,正常运行,等我睡一觉回来后,ajax请求就一直是 400 bad request。

    我想知道为什么发生这种情况。

    如果网站是完全对外开放的,不需要身份验证,那 [ValidateAntiForgeryToken] 这特性就是不该用吗?

    2020年8月13日 5:39