前端无法解码 ASP.NET Core 服务器响应。类型错误:解码失败

问题描述 投票:0回答:1

最近我遇到了一个奇怪的问题,我的 ASP.NET Core 7 服务器中有一个 POST 端点。 当我们的前端应用程序调用此 POST 端点时,返回以下错误:

TypeError: Decoding failed

此错误是否意味着客户端无法解码/理解后端响应?

由于某种原因,一旦我更改了我的端点 POST 响应

Ok(response);

return CreatedAtAction(nameof(SignUp), response, response);

它不再失败了。另请注意,当响应失败时,会有一个

Content-Encoding=gzip
标头

这个标题来自哪里?为什么一旦我更改了响应,它就停止发送 Content-Encoding 标头,并且调用成功了?

我将此服务器托管在 Azure Web App 服务中,版本是 ASP.NET Core 7。

更新

我现在遇到了与 GET 端点相同的问题,返回如下:

Ok(products)

但是,将其更改为

return products
并不能让错误消失

c# asp.net asp.net-mvc azure asp.net-core
1个回答
0
投票

Microsoft.AspNetCore.Mvc.CreatedAtActionResult CreatedAtAction (string? actionName, object? routeValues, object? value)

您正在传递需要路由值的响应。

路由值应具有与操作的路由属性匹配的参数。

例如如果行动是

[Route("/account/user/{id}")]

然后您的响应应包含一个 id 属性(如果您的控制器配置如此,则可能具有匹配的大小写)。

就我个人而言,我会让它更明显:

return CreatedAtAction(nameof(SignUp), new {id=response.Id}, response);
© www.soinside.com 2019 - 2024. All rights reserved.