为了账号安全,请及时绑定邮箱和手机立即绑定

成功执行 OnPost() 后 POST 返回 400 (RazorPages)

成功执行 OnPost() 后 POST 返回 400 (RazorPages)

RISEBY 2023-06-09 15:57:28
我在 asp.net 核心中使用 RazorPages。当我使用 jQuery/Ajax 创建对我的 RazorPage 的发布请求时,OnPost() 方法运行时没有错误,并且响应状态代码设置为 200。HttpContext.Response.StatusCode = 200;在 Chrome 控制台中,我的请求返回了错误代码 400,其中包含消息“加载资源失败”。指向错误源的链接将我带到VM6.js 的第 38 行。类似的代码适用于另一个 RazorPage,因此我认为它可能会尝试呈现我的页面 (.cshtml) 并出错。我通过在加载 cshtml 文件时输出到控制台来证明这个理论是错误的,而在发出 POST 请求时我没有得到这个输出。这是用于提交我的表单的工作页面和损坏页面共享的 Javascript:$("[name|='form']").submit(function() {    var formData = $(this).serialize();    $.ajax({        type: "POST",        data: formData,        success: function() {            $("#success").toast("show");        },        error: function(xhr) {            if (xhr.status == 429) {                $("#ratelimit").toast("show");            } else {                $("#error").toast("show");            }        }    });    return false;});如何确保我的网络服务器返回代码 200 而不是 400?
查看完整描述

1 回答

?
达令说

TA贡献1821条经验 获得超6个赞

要修复 400 错误,我需要在表单中包含 method="post"。这意味着包含验证令牌并且不会引发错误。

因为我的页面包含 C# 代码,如果没有事先调用 OnGet() 方法,它会抛出错误,这会在每次发布请求后导致 500 错误,尽管页面没有加载。

if(~~~ == null) return;在我的 cshtml 的顶部添加了它,它现在似乎可以工作了。


查看完整回答
反对 回复 2023-06-09
  • 1 回答
  • 0 关注
  • 295 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信