0

为什么如果#在带有 JS 的 URL 中使用它会返回 ''/false?

var el = '#string with number character -> #'   
el = el.replace(/[']/g, ''');
el = el.replace(/[#]/g, ''');

xmlhttp.open("GET","process_add_article.php?&title=" + (el),true);
xmlhttp.send(); 
4

3 回答 3

0

如果你想在 url 上编码一个字符串,有一个本地方法可以做到这一点:

var el = '#string with number character -> #'; 
el = encodeURI(el);

我不确定这是否会完成您正在寻找的内容,网址将是:

xmlhttp.open("GET","process_add_article.php?&title=#string%20with%20number%20character%20-%3E%20#",true);

这意味着标题参数为空,因为服务器将忽略哈希(#)

于 2012-10-12T17:32:55.147 回答
0

因为#指定了一个片段标识符。片段标识符完全是客户端实体,因此不会发送到服务器。请参阅有关该主题的维基百科。

于 2012-10-12T17:33:56.533 回答
0

您正在使用Numeric Character Reference而不是Percent-Encoding用于 URI。

您可能想encodeURIComponent改用。

var el = '#string with number character -> #'; 
xmlhttp.open("GET", "process_add_article.php?&title=" + encodeURIComponent(el), true);
xmlhttp.send(); 

不要与which encodeURIdoesn't encode#和characters 混淆。+=

于 2012-10-12T17:37:28.770 回答