首页 > 解决方案 > 使用带有编码数据的 window.open() 时出现 Angular HTTP 错误 431

问题描述

在 Angular 中,我有一个可打印的组件页面,需要在外部打开该页面才能让用户打印一些统计数据。它的构建方式是对相关数据进行编码,并将其传递到 URL 中。 在此处输入图像描述 但是,当数据变得非常大时,我会遇到 HTTP 错误 431,请求标头字段太大。

我指的是同一个应用程序,那么有什么方法可以禁用/增加最大长度阈值,还是我必须重新设计/解决实施? 在此处输入图像描述

标签: angularhttp

解决方案


URL 的大小有一个限制,大约为 2-64kb,具体取决于浏览器。

但是服务器通常将请求标头和请求路径大小限制为更小的值,以防止拒绝服务攻击。

如果仅在客户端呈现数据,则可以使用片段标识符 ( http://example.com/foo#<data>),因为该数据不会发送到服务器。

如果这不能解决问题,您可以使用其他方式传播数据,例如通过跨窗口消息传递或将值存储在 localstorage 中,然后将唯一 id 传输到新打开的窗口。


推荐阅读