javascript - Firefox 自动解码 url 中的编码参数,在 IE 中不会发生

标签 javascript ajax encoding encodeuricomponent

我在 Firefox 和 IE 之间感到沮丧,主要是 Firefox,因为在我可以在 Javascript 中使用它之前,它会自动解码哈希中的参数。 IE 不会自动解码 url,因此不会给我阅读错误。

除了我没有使用 ASP.NET 之外,我的问题与这个类似 ASP.NET MVC automatically decoding JSON-encoded parameters from AJAX

因此,如果我采用类似 example.com/#question=!%40%23%24%25^%26*(

而“!%40%23%24%25^%26*(”是使用 encodeURIComponent 编码的,在 IE 中,当我访问哈希时,它将保留为“!%40%23%24%25^% 26*(",但是在 firefox 中,当我访问哈希时,它会自动解码为 "!@#$%^&*("

问题在于,在我的脚本中,我使用 decodeURIComponent 对编码值进行解码,如果字符串确实已编码,这很好。由于它已经在 Firefox 中解码,它给我一个格式错误的 URI 序列错误,而 IE 根本没有给我任何错误。

我该如何解决这个问题?

最佳答案

经过搜索我发现这是一个跨浏览器的问题,最好使用location.href.split("#")[1]而不是window.location .hash

关于javascript - Firefox 自动解码 url 中的编码参数,在 IE 中不会发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4835784/

相关文章:

javascript - 如何让机器人在使用 !coins 命令时忽略给我硬币?

java - 如何在不使用servlet但使用JAX-RS的情况下将json对象从ajax发布到java类?

javascript - 使用 TrackballControls 时重置相机位置/旋转

javascript - 是否有一个node.js模块可以产生1/f(粉红噪声)波动?

javascript - 由于 TinyMCE 删除名称,Django 表单未发布

php - 使用php脚本将javascript对象保存到数据库中

javascript - 在 promise 链中间捕获错误的最佳方法是什么?

java - 客户端通过套接字从服务器接收消息时出现一些问题

javascript - 西类牙语特殊字符如 á ó 显示时显示困惑或垃圾值

数据库插入时的 MySQL-Python 字符编码异常