Javascript - "history.pushState" 将常规的“&”替换为“&”。如何避免?
Javascript - "history.pushState" replaces regular "&" with "&". How to avoid it?
我正在 Rails 中执行 AJAX 请求,执行后,我想修改 URL 并将所有参数放在那里。
这就是我在 Rails 控制器中获取相对 URL 的方式:
@url_params = request.original_fullpath
# => /members/info/detail?currency=usd&year=2016
然后,在JS文件中:
console.log("<%= @url_params %>");
# => /members/info/detail?currency=usd&year=2016
所以我尝试了:
var url = "<%= @url_params %>";
var replaced_url = url.replace("&", "&");
# => /members/info/detail?currency=usd&year=2016
但它也不起作用。
当我做 history.pushState("", "", replaced_url);
时,在 URL 中仍然是 $amp;
而不是只有 &
.
如何在没有&
字符的情况下推送URL?
谢谢
改变
var replaced_url = url.replace("&", "&");
到
var replaced_url = url.replace(/&/g, '&');
似乎,url 有多个 &,因为单独替换字符串是行不通的,所以考虑对这样的事情进行组替换。
我相信默认情况下 rails html 对您的输出进行编码以获得未编码的输出 try
var url = "<%=raw @url_params %>";
我正在 Rails 中执行 AJAX 请求,执行后,我想修改 URL 并将所有参数放在那里。
这就是我在 Rails 控制器中获取相对 URL 的方式:
@url_params = request.original_fullpath
# => /members/info/detail?currency=usd&year=2016
然后,在JS文件中:
console.log("<%= @url_params %>");
# => /members/info/detail?currency=usd&year=2016
所以我尝试了:
var url = "<%= @url_params %>";
var replaced_url = url.replace("&", "&");
# => /members/info/detail?currency=usd&year=2016
但它也不起作用。
当我做 history.pushState("", "", replaced_url);
时,在 URL 中仍然是 $amp;
而不是只有 &
.
如何在没有&
字符的情况下推送URL?
谢谢
改变
var replaced_url = url.replace("&", "&");
到
var replaced_url = url.replace(/&/g, '&');
似乎,url 有多个 &,因为单独替换字符串是行不通的,所以考虑对这样的事情进行组替换。
我相信默认情况下 rails html 对您的输出进行编码以获得未编码的输出 try
var url = "<%=raw @url_params %>";