为什么如果#
在带有 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();
为什么如果#
在带有 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();
如果你想在 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);
这意味着标题参数为空,因为服务器将忽略哈希(#)
因为#指定了一个片段标识符。片段标识符完全是客户端实体,因此不会发送到服务器。请参阅有关该主题的维基百科。
您正在使用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 encodeURI
doesn't encode#
和characters 混淆。+
=