我正在尝试解决我的Kestrel中间件上的两个错误,该中间件旨在处理获取请求并返回一些JSON。 (我对使用MVC不感兴趣)
该代码有效,但我想删除这两个错误:
在Chrome中,我收到此错误:
net :: ERR_INCOMPLETE_CHUNKED_ENCODING 200(确定)
在茶est中出现此错误:
“无法设置状态代码,因为响应已经开始”
public void Configure(
IApplicationBuilder app,
IHostingEnvironment env,
ILoggerFactory loggerFactory)
{
// some startup stuff...
app.Use(async (context, next) =>
{
if (context.Request.Path.HasValue && context.Request.Path.Value.Contains("searchjsfetch/"))
{
await context.Response.WriteAsync(JsonConvert.SerializeObject(simpleObject), Encoding.UTF8);
}
})
}
在打字稿中,我这样获取:
fetch(`${hostDomain}searchjsfetch/${email}/2/3`)
.then((response) => {
response.body.getReader().read().then((c) => {
return new TextDecoder("utf-8").decode(c.value);
});
})
答案 0 :(得分:0)
使用ASP.NET Core,您将“使用MVC”(例如:在startup.cs中),但这并不意味着您必须使用MVC(视图等)...您将使用MVC命名空间等,但是您仍然可以返回JSON数据。与传统的MVC视图响应相比,有针对API的几个类-
第一个是 ControllerBase -https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.controllerbase?view=aspnetcore-2.2
第二个可能感兴趣的类是 ApiControllerAttribute 类
看看这篇文章-https://docs.microsoft.com/en-us/aspnet/core/web-api/?view=aspnetcore-2.2
答案 1 :(得分:0)
那是愚蠢的,我有一个额外的
await next();
造成问题的原因