Angular 4 http get - 从url中删除哈希

时间:2017-04-26 20:03:44

标签: angular http odata

在进行HTTP调用时,Angular正在切断哈希及其后的所有内容。

示例:

http://sub.domain.com/api/$metadata#EndpointName

...变为

http://sub.domain.com/api/$metadata

无法找到告诉Angular不修改URL的方法。有什么想法吗?

目前使用Angular 4.0.0。

2 个答案:

答案 0 :(得分:1)

首先,哈希符号用于标识当前文档中要查找的位置,因此使用它来表示服务器上的端点在语义上是不正确的。

您应该使用查询参数,而不是使用哈希。例如,http://sub.domain.com/api/$metadata?endpoint=EndPointName

据我所知,剥离哈希符号是Http模块的角色实现

答案 1 :(得分:1)

我发现了这个:

  

片段参数URL的片段部分,后面的所有内容   哈希符号,是通常仅由客户端使用的信息,   例如浏览器,而不是由服务器处理。因此它是   讨论REST参数时无趣。唯一有趣的   item是否需要将实际哈希字符作为值发送   (而不是表示哈希控制符号)到其中一个   选项。在这种情况下,您需要对URL进行编码。

     

字符编码特殊字符在URL中由a编码   机制称为“百分比编码”。在这个机制任何角色   可以用百分号替换,后跟两位数   编码字符的十六进制值。如果是特殊字符   (例如哈希字符)需要作为实际数据发送,它们必须   被编码。可以选择对所有其他字符进行编码。

此处:https://www.soapui.org/testing-dojo/best-practices/understanding-rest-headers-and-parameters.html