emilly
emilly

Reputation: 10530

Encoding URL (including characters like &) using jquery or native javascript function?

I have one one hidden paramter in form whose value is

custAddress=CustomerAddress.do?fisrtName=scott&lastName=Miles

I want to encode it before sending it and so that characters like & can be replaced with %26 etch

i tried using javascript built-in encodeURI("urlToencode") but does not encode characters like &?

Upvotes: 1

Views: 235

Answers (2)

Ruan Mendes
Ruan Mendes

Reputation: 92274

Use https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURIComponent

You need to call that on each dynamic part (name and value) of the URL query string. So the question is what is the URI component in custAddress=CustomerAddress.do?fisrtName=scott&lastName=Miles That doesn't really look like a URL because you have the = before the ?

The most sense that I can make is that the full URL is something like

http://myserver/file.do?custAddress=CustomerAddress.do?fisrtName=scott&lastName=Miles

In which case, you should build your URL like

var custAddress = "CustomerAddress.do?fisrtName=scott&lastName=Miles";
var initialPath= "/path/to/file.do?";
var url = initialPath + "custAddress=" + encodeURIComponent(custAddress);

Since you mentioned jQuery, you can use a $.param, looks cleaner and does the encoding for you, and you can give it multiple query parameters at once

var url  = initialPath + $.param({
    custAdrress: custAddress, 
    otherParam: "paramVal",
    // Both the param name and value need to be encoded and $.param does that for you
    "funny Name & Param": "funny & value ="
});

Upvotes: 1

Chamika Sandamal
Chamika Sandamal

Reputation: 24302

Try this code line,

encodeURIComponent("fisrtName=scott&lastName=Miles");

Upvotes: 4

Related Questions