当jQuery ajax请求中包含#时,URL中断
URL breaking when it contains # in jQuery ajax request
当我用jquery Ajax请求一个包含#符号的url时,#之后的url字符串会被截断。例如:
http://somesitem.com/?name=Some#thing
当我在firebug中看到这个url被请求时,我看到所有被提交的都是:
http://somesitem.com/?name=Some
我尝试使用encodeURI函数,但没有成功。
关于如何提交包含#的整个字符串,有什么提示吗?
encodeURI不会删除"#"。您需要使用encodeURIComponent
encodeURIComponent('Some#thing')
这应该会产生这样的东西:
Some%23thing
尝试将"#"替换为"%23"。
这可能是因为#
字符有特殊含义。这基本上是一个保留的角色。我可能只是建议你用一个不同的角色来代替你所用的角色。
片段标识符永远不会传递给服务器。如果您想将其发送到服务器,则需要首先将现有片段转换为标准url参数。
var url = window.location;
//url = http://somesitem.com/?name=Some
url += '&hash='+window.location.hash;
//url = http://somesitem.com/?name=Some&hash=thing
$.get(url);
片段标识符的功能与URI:即它的处理完全是客户端的,没有来自服务器的参与——当然,服务器通常会提供帮助以确定MIME类型,并且MIME类型确定碎片处理当代理(如Web浏览器)从Web服务器请求资源,代理将URI发送到服务器,但不发送片段。相反,代理等待服务器发送资源,然后代理处理根据文档类型和片段值的资源
http://en.wikipedia.org/wiki/Fragment_identifier
http://api.jquery.com/category/selectors/
JQuery文档中的特殊字符包括#
它说在JQuery中使用两个''来转义(我在javascript中只相信一次)。
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- 使用php或javascript从facebook相册URL中删除多余的部分
- Angular JS IE9 Hashbang url rewriting
- JavaScript下拉菜单-点击按钮并根据所选值重定向到url
- 直接下载文件,而不是从window.open(url)
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 通过js在新选项卡中有条件地打开url
- CKFinder 3为所选文件返回错误的URL
- 如何获取不属于我项目的上一页的URL
- ReactJS映射:如何仅在url变量不为空时呈现html链接
- 在URL中传递JS对象
- 将纯文本URL转换为可单击链接
- Javascript html每点击一次就会更改url
- 以角度管理动态URL
- Mathias URL shortener
- 当jQuery ajax请求中包含#时,URL中断
- 单击按钮即可从 iframe 中断到同一域中的新 URL
- 这个 js 在没有 url 前缀的情况下中断有什么原因吗:www
- Django:除主页模板外,静态文件图像URL路径中断
- 我的视图的相对URL路径在部署时中断