如何逃避绝对URI?

时间:2014-05-12 20:00:58

标签: javascript

在剧本中:“http://theip.com/something/index.php

我有以下javascript URI:

var uri = '/something/script.php?=' + someDynamicValue

我传递给函数“loadHTML(url,div)”

someDynamicValue可以包含空格和其他符号,这些符号会导致JQuery与$.load()崩溃。

所以,我尝试编码uri:

$('#'+div).load(encodeURIComponent(uri));

并给出

http://theip.com/something/%2Fsomething%2Fscript.php%3Fq%3D?_=1399924421585

也就是说,复制/ something(应该是一个绝对的URL,所以它应该转到http://ip.com/something/script.php

现在,如果我执行以下操作:

$('#'+div).load(encodeURIComponent(uri).replace(/%2F/g,'/'));

我得到了一个“好”的网址,但却给出了404错误:

http://theip.com/something/script.php%3Fq%3D?_=1399923477529

所以我猜它可能会将script.php%3Fq%3D?_=1399923477529作为文字脚本名称。

我该如何解决? (对网址的其余部分进行编码)。

谢谢!

1 个答案:

答案 0 :(得分:1)

您只需要对尚未正确进行URI编码的部分进行编码:

var uri = '/something/script.php?foo=' + encodeURIComponent(someDynamicValue)
$('#'+div).load(uri);