2017-07-28 204 views
0

我的环境是低于POST 400(错误请求)错误

ASP.NET核2.0

下面是测试功能

[HttpPost] 
    [AllowAnonymous] 
    [ValidateAntiForgeryToken] 
    public ActionResult Test() 
    { 
     return RedirectToAction("Home"); 
    } 

我用邮递员发送POST数据 http://localhost:00000/test/test

总是有400个不好的请求...为什么?

[错误消息]

headers:Headers 
ok:false 
status:400 
statusText:"Bad Request" 
type:2 
url:"http://localhost:57230/account/register" 
_body:"" 

[更新] 我找到解决办法..但是有新的错误XD

headers:Headers 
ok:false 
status:500 
statusText:"Internal Server Error" 
type:2 
url:"http://localhost:57227/account/register" 
_body: 

[更新] 解决...

https://docs.microsoft.com/en-us/aspnet/core/publishing/iis

+0

你能告诉我们你的发布数据吗? –

+0

嗨,未来请让我们知道〜你怎么解决这个问题,这样任何人都可以获得关于这个问题和解决方案的更多信息。干杯。 – SaltySub

回答

0

我正面临类似的情况,其中表单POST被路由到正确的控制器,但然后控制器返回一个空页面(400错误)。控制器甚至没有执行任何代码。

问题似乎是以下几点:

如果你不把@Html.AntiForgeryToken()只是在你的CSHTML的<form>标签后,如果您使用[AutoValidateAntiforgeryToken][ValidateAntiForgeryToken]控制器将返回一个空的页面,没有输出或控制台的警告。

因此,它似乎可以防止通过HTML表单的跨站点或跨会话(?)攻击按预期工作。

+0

我发现了一种方式,我一起使用Angular :) 但无论如何感谢您的回答。 –