Firefox автоматически декодирует закодированный параметр в url, не происходит в IE

У меня возникли проблемы между Firefox и IE, в основном Firefox, поскольку он автоматически декодирует параметр в хеше, прежде чем я смогу работать с ним в Javascript. IE не декодирует URL автоматически, поэтому я не получаю ошибок чтения.

Моя проблема аналогична этой, за исключением того, что я не использую ASP.NET ASP.NET MVC автоматически декодирует параметры в кодировке JSON из AJAX

Итак, если я возьму URL-адрес вида example.com/#question =!% 40% 23% 24% 25 ^% 26 * (

, тогда как "!% 40% 23% 24% 25 ^% 26 * ("было закодировано с помощью encodeURIComponent, в IE, когда я обращаюсь к хешу, он будет оставлен как"!% 40% 23% 24% 25 ^% 26 * (", однако в firefox, когда я получаю доступ к хешу, он автоматически декодируется в " ну, в основном Firefox, поскольку он автоматически декодирует параметр в хэше, прежде чем я смогу работать с ним в Javascript. IE не декодирует URL автоматически, поэтому я не получаю ошибок чтения.

Моя проблема аналогична этой, за исключением того, что я не использую ASP.NET ASP.NET MVC автоматически декодирует параметры в кодировке JSON из AJAX

Итак, если я возьму URL-адрес вида example.com/#question =!% 40% 23% 24% 25 ^% 26 * (

, тогда как "!% 40% 23% 24% 25 ^% 26 * ("было закодировано с помощью encodeURIComponent, в IE, когда я обращаюсь к хешу, он будет оставлен как"!% 40% 23% 24% 25 ^% 26 * (", однако в firefox, когда я получаю доступ к хешу, он автоматически декодируется в " ну, в основном Firefox, поскольку он автоматически декодирует параметр в хэше, прежде чем я смогу работать с ним в Javascript. IE не декодирует URL автоматически, поэтому я не вижу ошибок чтения.

Моя проблема похожа на эту, за исключением того, что я не использую ASP.NET ASP.NET MVC автоматически декодирует параметры в кодировке JSON из AJAX

Итак, если я возьму URL-адрес вида 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 вообще не выдает никаких ошибок.

Как я могу это исправить?

16
задан Community 23 May 2017 в 12:10
поделиться