为什么在使用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();
答案 0 :(得分: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);
这意味着title参数为空,因为服务器将忽略散列(#)
答案 1 :(得分:0)
因为#指定了片段标识符。片段标识符完全是客户端实体,因此不会发送到服务器。有关该主题,请参阅Wikipedia。
答案 2 :(得分: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();
不要与不#
,+
和=
字符编码的encodeURI
混淆。