Vlada
Vlada

Reputation: 145

Sending URL request resulting in invalid JSON

I have this string with two variables inserted inside it

URL='https://bla.com/api/multicomplete?data={"query":"' + title_text + " " + city_name + '"}';

Sometime, title_text includes some wacky characters (&, $, letters like đ etc..) and it results in something like this:

title_text = 'Airport Hotel Park & Fly Sofia'

...?data={"query":"Airport%20Hotel%20Park%20&%20Fly%20Sofija",...

I can assume that that is because I have %20&%20 in URL, and indeed when I remove &%20 (& space), then I get no errors.

So I have tried this method:

JSON.stringfy(title_text) 

to let me send those characters via URL, but it doesn't work. Is there a good method to escape those special characters in that long string? I don't feel like removing them for good, I feel so dirty thinking of it.

Upvotes: 1

Views: 963

Answers (1)

pradyumnad
pradyumnad

Reputation: 563

You have to use URI Encoding using encodeURI() to solve this problem. You can do JSON.stringify and concatenate with the base url just like you've already done.

Upvotes: 1

Related Questions