angular - 使用带有编码数据的 window.open() 时出现 Angular HTTP 错误 431
问题描述
在 Angular 中,我有一个可打印的组件页面,需要在外部打开该页面才能让用户打印一些统计数据。它的构建方式是对相关数据进行编码,并将其传递到 URL 中。 但是,当数据变得非常大时,我会遇到 HTTP 错误 431,请求标头字段太大。
解决方案
URL 的大小有一个限制,大约为 2-64kb,具体取决于浏览器。
但是服务器通常将请求标头和请求路径大小限制为更小的值,以防止拒绝服务攻击。
如果仅在客户端呈现数据,则可以使用片段标识符 ( http://example.com/foo#<data>
),因为该数据不会发送到服务器。
如果这不能解决问题,您可以使用其他方式传播数据,例如通过跨窗口消息传递或将值存储在 localstorage 中,然后将唯一 id 传输到新打开的窗口。
推荐阅读
- php - 将 PHP 从版本 5.6 升级到 7.2 后 MySQL 服务无法在 Ubuntu 14.04 上启动
- javascript - 如何在javascript的url中传递参数?
- javascript - 使用 array.map() 映射到另一个类
- php - 为什么我不能对这个数组进行排序?
- azure - 数据工厂 v1 将某些标头屏蔽为 http 标头中的凭据
- react-native - 使用本机反应如何获取当前位置的城市名称?
- r - html格式的shiny_output比较结果
- python - python 3.6 pynput NameError:未定义名称“键盘”
- python - 带有日期时间轴的散景悬停多线
- javascript - 如何使用 jQuery 和 JavaScript 获取 URL 的特定部分?