0

我一直在尝试使用service.getNavigation()方法,但显然请求 URI 太长导致此错误:

Request-URI Too Long

The requested URL's length exceeds the capacity limit for this server.

是否有可以解决此问题的 spartacus 配置?或者这应该在云(ccv2)配置中处理?

4

2 回答 2

1

不确定您具体谈论的是哪个服务以及您在那里传递了哪些数据。对于初学者,请阅读:https ://developer.mozilla.org/en-US/docs/Web/HTTP/Status/414

此外,如果您可以谈谈您正在使用的服务以及您尝试传递/获取的数据,这将使每个人受益。

于 2020-01-31T09:40:46.817 回答
0

导航组件正在触发对所有 componentId 的请求。如果您的导航包含很多(根?)元素,则 HTTP GET 请求的最大长度对于给定的客户端或服务器可能太长。

加载组件的初始实现实际上是通过 POST 请求完成的,但给人的印象是我们不需要支持包含这么多组件的请求。我想我们错了。

幸运的是,遗留的基于 POST 的请求仍在代码库中,它是OccCmsComponentAdapter.findComponentsByIdsLegacy.

使用此代码的最简单方法是提供一个CustomOccCmsComponentAdapter, 扩展自OccCmsComponentAdapter. 然后您可以覆盖该findComponentsByIds方法并简单地调用super.findComponentsByIdsLegacy并传入参数的副本。

更简洁的方法是覆盖CmsComponentConnector并直接将负载委托给adapter.findComponentsByIdsLegacy. 我不会从这里开始,因为它更复杂。使用第一种建议的方法进行 POC。

于 2020-02-05T08:57:11.133 回答