jQuery不能编码一个URL参数

时间:2016-04-04 10:10:54

标签: javascript jquery encoding

我有一个带参数的GET请求,这个参数也是一个URL。所以通常我只是对URL进行编码,然后在我的服务器中对其进行解码,这完全可以从Java中完成,但现在我使用的是jQuery而且我遇到了问题。

这是该参数的值:

  

http://www.BookOntology.com/bo#ania

当我像这样编码时:

encodeURI(userURI)

我得到了相同的价值,而我认为我应该得到这个

  

的http%3A%2F%2Fwww.BookOntology.com%2Fbo%23ania

告诉你什么是错的

我当前的方法(使用econdeURI)带来了这个最终的URL(注意我只想编码参数而不是整个URL)。

  

http://bla bla bla?userURI = http://www.BookOntology.com/bo#ania

但在服务器中,当我读取userURI参数的值时,我得到:

  

http://www.BookOntology.com/bo

对于我对该参数的值进行编码的方式肯定是一个问题,因为同样,编码之前和之后的值是相同的,尽管该值包含一些应该更改的字符。

你能帮助我通过吗?

2 个答案:

答案 0 :(得分:2)

尝试使用encodeURIComponent函数,该函数对统一资源标识符(URI)进行编码

DEMO:encode input value

阅读MDN DOCS了解详情。

答案 1 :(得分:0)

encodeURI只会更改无法在网址中显示的字符。

您正在寻找encodeURIComponent,它也会对网址中具有特殊含义的所有字符进行编码(并使其适合插入查询字符串中)。