Вам необходимо закодировать параметры запроса, прежде чем объединять их, чтобы сформировать URL. Здесь необходима функция encodeURIComponent . Например,
URL, который вам нужно создать:
http://localhost/mysite/mypage?param=a=?&b=/
Теперь, предполагая это? и / приходит в качестве переменных, вам нужно кодировать их перед вводом URL.
Итак, давайте создадим ваш URL с помощью этой функции (я ожидаю два параметра запроса):
var q1 = "a=?"; //came from some input or something
var q2 = "/"; //came from somewhere else
var faultyUrl = "http://localhost/mysite/mypage?param="+ q1 +"&b=" + q2;
// "http://localhost/mysite/mypage?param=a=?&b=/"
var properUrl = "http://localhost/mysite/mypage?param="+ encodeURIComponent(q1) +"&b=" + encodeURIComponent(q2);
//"http://localhost/mysite/mypage?param=a%3D%3F&b=%2F"
Эта функция в базовом JS и поддерживается во всех браузерах.