【问题标题】:asp.net core ajax getasp.net核心ajax获取
【发布时间】:2018-11-05 16:12:45
【问题描述】:
我正在制作一个简单的 jquery ajax 获取请求。第一个请求效果很好。但是,任何后续操作都会返回错误 431 (Request Header Fields Too Large)。似乎 asp.net 核心正在添加相当大的标题(见图)
我该如何解决这个问题?
提前感谢您的帮助]1
【问题讨论】:
标签:
ajax
asp.net-core
asp.net-core-2.0
asp.net-core-2.1
kestrel-http-server
【解决方案1】:
默认情况下,TempData 使用基于 cookie 的提供程序,这意味着您添加的每条数据都作为 cookie 输出。看起来您在这里添加了太多内容,以至于标题现在太大了。最简单的解决方案是使用会话状态作为TempData 提供程序。然后,无论您在TempData 中设置了多少数据,您都只会发出一个会话 cookie。在ConfigureServices 添加:
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
.AddSessionStateTempDataProvider();
services.AddSession();
然后在Configure:
app.UseSession();
app.UseMvc();
您还想将会话配置为使用 Redis 或 SQL Server 等持久存储,而不是默认的内存,但这与 TempData 的使用没有直接关系。