发送URL请求导致无效的JSON

时间:2018-05-18 18:21:21

标签: javascript

我有这个字符串,里面插入了两个变量

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

有时,title_text包含一些古怪的字符(&,$,字母如đ等......),结果如下:

title_text = 'Airport Hotel Park & Fly Sofia'

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

我可以认为那是因为我在%20&%20中有URL,而且当我删除&%20(& space)时,我没有错误。

所以我尝试过这种方法:

JSON.stringfy(title_text) 

让我通过URL发送这些字符,但它不起作用。有没有一个很好的方法来逃避那个长字符串中的特殊字符?我不想把它们永远地移走,我觉得它很脏。

1 个答案:

答案 0 :(得分:1)

您必须使用encodeURI()使用URI编码来解决此问题。 您可以执行JSON.stringify并与基本网址连接,就像您已经完成的那样。