13

I am hitting a struts action using AJAX, everything is fine but there is problem with Firefox , when i am passing the parameter in URL as a request parameter and if that parameter, contains hash(#) symbol in the end, then firefox strips everything after that symbol and send that parameter to action without it.

For example, if im passing test123#abcd in Firefox, then i am getting only test123 in action class as opposed to test123#abcd which is undesirable for my requirement.For IE it is working perfectly.Is there any way by which i can extract the full parameter including the # symbol in Firefox.

please let me know if i need to post the java action code also,thanks.

JS snippet

var valuePassword=test123#abcd;

    var url = "/test/ChangePwdAjax.do?newPass="+valuePassword;
            var xmlHTTP = getXMLHTTPRequest();
CC BY-SA 3.0

3 Answers 3

23

Use

var url = "/test/ChangePwdAjax.do?newPass="+ encodeURIComponent(valuePassword);

This will encode your valuePassword to a valid URL component which can be passed as a query string in URLs

And on the other side you should use decodeURIComponent to get the value from encoded string

var value = decodeURIComponent(valuePasswordPassed);

To know more about this Go here

CC BY-SA 3.0
3
1

When you change data you have to do a http POST request. Not a GET request. This will automatically solve your problem without having to encode your password.

xmlhttp.open("POST", "/test/ChangePwdAjax.do", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("newPass=" + valuePassword);
CC BY-SA 3.0
2
1

Surely worth mentioning that passing a password as a URL parameter is a terrible idea. A passer-by can see your new password in your browser's address bar. And anyone in the future can find the password in your browsing history.

-mobailey

CC BY-SA 4.0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.