jQuery Ajax使用Pound(Number)Sign调用URL

时间:2015-04-20 16:57:21

标签: jquery ajax urlencode

我正在尝试对其中包含#符号的URL执行jQuery Ajax调用。例如:

https://www.foo.com/myapp/app/#ptc1/tcomp/infoPage?oid=VR:wt.doc.WTDocument:1272991906

但是,Ajax调用调用的URL被截断为“https://www.foo.com/myapp/app/”。看起来这是因为jQuery将#符号视为锚点指示符,并将其后的所有内容都删除。

所以,我尝试使用encodeUriComponent和直接替换来将#符号转换为它的十六进制等效%23。但是,如果我这样做并调用URL,那么我会获得404。

有没有办法绕过这个或服务器上的错误是因为不理解%23与#相同?

更新

也许我应该重新说出这个问题,因为它没有得到任何答案。

有没有办法告诉JQuery不要在Ajax调用的URL中#符号后删除所有内容?

1 个答案:

答案 0 :(得分:0)

  

这看起来是因为jQuery将#符号视为锚点指示符,并将其删除后的所有内容。

那不是jQuery,那是浏览器。

片段标识符永远不会作为URL的一部分发送到服务器。

您提供的网址引发了404错误(可能是您尝试提供示例网址,请使用Element fichada = new Element("fichada" + contador );example.com是一个真实的网站!)但我会认为页面上显示的任何内容都会根据foo.com在页面中的客户端JavaScript放在那里之后发生的变化,而不是由服务器进行更改。

为了复制它,您需要对其JS进行反向工程,并在您自己的代码中重现它对页面所做的更改。