我需要我的应用允许来自任何地方的POST请求,而不会引发400错误请求错误。我使用的是<form action='/anotherurl' method='post'>
,需要能够在应用的另一个页面上使用通过POST传递的参数。我不能使用GET,因为我不希望参数在URL中可见。
我试过在页面上添加@attribute [IgnoreAntiforgeryToken],但是没有效果。有没有办法强制Blazor允许POST请求通过?
编辑:以下是完整的表单
<form action="/ClientReports" method="post" target="_blank">
@foreach (var id in SelectedClientIds)
{
<input type="hidden" id="Params" name="Params" value="@id">
}
<input type="submit" value="Client Reports">
</form>
这些参数被添加到隐藏的输入中,然后像普通的HTML表单一样提交,但是当导航发生时,结果是一个400错误。
1条答案
按热度按时间dwbf0jvd1#
将
@attribute [IgnoreAntiforgeryToken]
添加到_Host.cshtml
文件将允许HTML表单POST到Blazor Server应用程序。注:由于Blazor是一个SPA,这将在全局范围内关闭防伪功能,因此需要更多的代码来关闭单个页面的防伪功能。