asp.net核心ajax得到

asp.net core ajax get

我正在做一个简单的 jquery ajax 获取请求。第一个请求效果很好。但是,任何后续 returns 错误 431(请求 Header 字段太大)。似乎 asp.net 核心正在添加相当大的 headers(见图)

如何解决这个问题?

在此先感谢您的帮助]1

默认情况下,TempData 使用 cookie-based 提供程序,这意味着您添加的每条数据都会作为 cookie 输出。看起来您在此处添加了太多内容,以至于 header 现在太大了。最简单的解决方案是使用 session 状态作为 TempData 提供者。然后,无论您在 TempData 中设置了多少数据,您都只会发送一个 session cookie。在 ConfigureServices 添加:

services.AddMvc()
    .SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
    .AddSessionStateTempDataProvider();

services.AddSession();

然后在Configure:

app.UseSession();
app.UseMvc();

您还想配置 session 以使用像 Redis 或 SQL 服务器这样的持久存储,而不是默认的 in-memory,但那是与 TempData.

的使用没有直接关系