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
.
的使用没有直接关系
我正在做一个简单的 jquery ajax 获取请求。第一个请求效果很好。但是,任何后续 returns 错误 431(请求 Header 字段太大)。似乎 asp.net 核心正在添加相当大的 headers(见图)
如何解决这个问题?
在此先感谢您的帮助
默认情况下,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
.