【问题标题】:How to handler HTTP Request with # character in URL如何处理 URL 中带有 # 字符的 HTTP 请求
【发布时间】:2018-07-23 08:08:42
【问题描述】:

我的客户发送了一个带有 URL http://example.com/callback#id_token=data 的 HTTP 请求 现在我需要处理这个请求并获取“id_token”的数据。 请帮助我使用 Java Web 项目处理此请求。 我尝试使用 servlet,但没有得到“id_token”的数据 我的servlet在下面

<servlet>
    <servlet-name>callback</servlet-name>
    <servlet-class>com.admin.controller.CallbackServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>callback</servlet-name>
    <url-pattern>/callback</url-pattern>
</servlet-mapping>

非常感谢。

【问题讨论】:

  • 哈希# 是否被编码?请求是通过浏览器提交的吗?如果是,则哈希已经具有不同的含义,只能通过 javascript 访问。
  • 我的客户在他们的库中执行发送重定向 url example.com/callback#id_token=data。现在我们需要处理这个请求并处理数据“id_token”。
  • 在服务器端无法访问hash值,必须使用javascript来处理。
  • 嗨加法器,请帮我一个使用javascript的示例代码。非常感谢。

标签: servlets jakarta-ee


【解决方案1】:

除非 url 编码,否则哈希 #id_token=data 通常在客户端以 document.location.hash 结尾。

console.log(document.location.hash);//#id_token=data
var hash = document.location.hash;
var split = hash.split('=');
console.log(split[0]);//#id_token
console.log(split[1]);//data

您通常可以使用 F12 访问控制台,选项卡“控制台”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-07
    • 1970-01-01
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多