2016-03-18 1 views
2

私はRailsでAJAXリクエストを実行しており、実行した後、URLを変更してそこにすべてのパラメータを入れたいと思います。Javascript - "history.pushState"は正規の "&"を "&"に置き換えます。それを避ける方法は?

これは、私はRailsのコントローラで相対URLを取得する方法である。そして、

@url_params = request.original_fullpath 
# => /members/info/detail?currency=usd&year=2016 

、JSファイルに:

console.log("<%= @url_params %>"); 
# => /members/info/detail?currency=usd&amp;year=2016 

だから私が試した:

var url = "<%= @url_params %>"; 
var replaced_url = url.replace("&amp;", "&"); 
# => /members/info/detail?currency=usd&amp;year=2016 

しかしそれはどちらも働かない。

私がhistory.pushState("", "", replaced_url);を実行した場合、URLにはまだがありますが、ではなく、$amp;です。

&amp;文字なしでURLをプッシュするにはどうすればよいですか?

は、URL文字列の単一の置換が働かないため、それらの複数の&さんを、持っているようにそれはそうあなた

+0

を試し得るためにあなたの出力をエンコードする... – dandavis

+0

'&'ちょうどHTML '&' – Ilya

+0

を表すシンボルええ、そうです、それに取り組んでいますが、私はそれを正しく理解し、URLを "古典的な" '&'形式で表示しようとしています。 – user984621

答えて

0

私はデフォルトのレールで信じているHTMLは、符号化されていない出力はあなたのエンティティを変換するJSはありません

var url = "<%=raw @url_params %>"; 
+1

これはおそらく安全ですが、 'var url = <%= raw @ url_params.to_json%>;'を実行することは間違いなく安全です。 –

0

変更

var replaced_url = url.replace("&amp;", "&"); 

var replaced_url = url.replace(/&amp;/g, '&'); 

に感謝し、そう考えますグループはそのようなものを置き換える。

よりについてを知っている:http://www.w3schools.com/jsref/jsref_replace.asp

+0

ありがとう@ ameenulla0007、私はその記事を見つけ、そのアプローチを試みたが、それはどちらの方法でも動作させませんでした。 URLにはまだ '&'がプッシュされます。 – user984621

+0

あなたはしてください、私はそれを使用することを検討することができますように、あなたが置き換えようとしている一例のURLで、フィドルを投稿してください..一方、私の試したフィドルを確認してください:https://jsfiddle.net/3w5zhufn/ – ameenulla0007

関連する問題