Java URL在hashtag之后被剪切

Java URL在hashtag之后被剪切,java,angular,tomcat,redirect,hashtag,Java,Angular,Tomcat,Redirect,Hashtag,Im使用Java(Maven)、Angular(8.3.20)和Tomcat服务器 在Java中,我有一个HttpServletResponse的sendRedirect,其URL包含一个hashtag 例如: 但是#(世界部分)后面的字符串不会出现在前端 在控制台/网络中作为标题,我收到了。所以世界已经不复存在了 我曾尝试将hashtag更改为编码值(它将返回%23),但效果并不理想 在将标签发送到前端后,如何获取部件?因此,从后端(一个带有磅/标签的url)到前端。我寻找这个问题,我找到的解

Im使用Java(Maven)、Angular(8.3.20)和Tomcat服务器

在Java中,我有一个HttpServletResponse的sendRedirect,其URL包含一个hashtag

例如:

但是#(世界部分)后面的字符串不会出现在前端

在控制台/网络中作为标题,我收到了。所以世界已经不复存在了

我曾尝试将hashtag更改为编码值(它将返回%23),但效果并不理想


在将标签发送到前端后,如何获取部件?因此,从后端(一个带有磅/标签的url)到前端。

我寻找这个问题,我找到的解决方案是将#编码到%23, 但它似乎并不适用于所有浏览器(例如:IE、Safari),因此尝试使用谷歌chrome作为例子

更多关于:

我查找了这个问题,找到的解决方案是将#编码到%23, 但它似乎并不适用于所有浏览器(例如:IE、Safari),因此尝试使用谷歌chrome作为例子

更多关于:

路由策略
HashLocationStrategy
的好处是符号后面的任何内容都不会发送到服务器,这使得使用它存储应用程序状态非常理想

它为什么有用 使用哈希将页面重新加载(或通过书签重新访问)路由到子页面,如

http://localhost:4200/#/articles/35

不向服务器查询子页面,而是返回主应用程序页面

http://localhost:4200/

这样,服务器实现只需要知道根页面(这是唯一需要查询的内容)

使用
PathLocationStrategy
(默认值),服务器需要设置为处理应用程序实现的每个URL的请求

所以,您可以做的是:在angular from routes文件中禁用
HashLocationStrategy
。或者,您可以附加不带#的url,然后将其发送到服务器并在服务器端处理该url

我也遇到了同样的问题,我所做的是添加#前面的部分作为查询参数,以便服务器可以访问它。 例如。 (
Https://localhost:4200/api/test?remainingDataFromHash=requiredData
)像这样的路由策略
HashLocationStrategy
的好处是符号后面的任何内容都不会发送到服务器,这使得使用它存储应用程序状态非常理想

它为什么有用 使用哈希将页面重新加载(或通过书签重新访问)路由到子页面,如

http://localhost:4200/#/articles/35

不向服务器查询子页面,而是返回主应用程序页面

http://localhost:4200/

这样,服务器实现只需要知道根页面(这是唯一需要查询的内容)

使用
PathLocationStrategy
(默认值),服务器需要设置为处理应用程序实现的每个URL的请求

所以,您可以做的是:在angular from routes文件中禁用
HashLocationStrategy
。或者,您可以附加不带#的url,然后将其发送到服务器并在服务器端处理该url

我也遇到了同样的问题,我所做的是添加#前面的部分作为查询参数,以便服务器可以访问它。 例如。
Https://localhost:4200/api/test?remainingDataFromHash=requiredData
)像这样

我的问题是我必须将包含#的url从后端发送到前端。在前端,hashtag的部分被切断了..从哪里将url传递到后端?从前端,但当我这样做时,它不包含hashtag。hashtag只是从后端到前端创建的,不应该是这种情况,实际上java中的方法httpRequest.getRequestURL()在#之前检索url。您必须仅使用#从前端发送url。请你再确认一下。我确定,因为我遇到了完全相同的问题。我不使用httpRequest.getRequestURL()方法。它由@Context-HttpServletRequest和@Context-HttpServletResponse传递。因此,可以在特定的@Path上发布,创建一个包含#的url并返回重定向url。我的问题是,我必须将包含#的url从后端发送到前端。在前端,hashtag的部分被切断了..从哪里将url传递到后端?从前端,但当我这样做时,它不包含hashtag。hashtag只是从后端到前端创建的,不应该是这种情况,实际上java中的方法httpRequest.getRequestURL()在#之前检索url。您必须仅使用#从前端发送url。请你再确认一下。我确定,因为我遇到了完全相同的问题。我不使用httpRequest.getRequestURL()方法。它由@Context-HttpServletRequest和@Context-HttpServletResponse传递。因此,可以在特定的@Path上发布,创建一个包含#的url,并返回一个重定向url