2016-03-18 9 views
2

Ich mache eine AJAX-Anfrage in Rails und nach der Ausführung möchte ich die URL ändern und dort alle Parameter eingeben.Javascript - "history.pushState" ersetzt reguläres "&" durch "&". Wie man es vermeidet?

Also das ist, wie ich die relative URL in der Rails-Controller erhalten:

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

Dann in der JS-Datei:

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

Also habe ich versucht:

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

aber es funktioniert auch nicht.

Wenn ich tun history.pushState("", "", replaced_url);, in der URL ist immer noch die $amp; statt nur &.

Wie drücken Sie die URL ohne die Zeichen &amp;?

Danke

+0

zu bekommen versuchen, die nicht Ihre Entitäten JS Converting ... – dandavis

+0

'' & nur html Symbol, das '&' – Ilya

+0

darstellt Ja, es ist, und es funktioniert damit, aber ich versuche nur, das richtig zu machen und die URL im "klassischen" '&' Format anzuzeigen. – user984621

Antwort

0

I durch Standardschienen glauben HTML codiert die Ausgabe der nicht codierten Ausgang

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

Dies ist wahrscheinlich sicher, aber es ist wohl sicherer zu tun 'var url = <% = raw @ url_params.to_json%>;'. –

0

Änderung

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

zu

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

wie es scheint, URL mehrere & ‚s hat, denn von denen nicht einzelne Ersetzung des String arbeiten, so prüfen Gruppe ersetzen für solche Dinge.

wissen mehr über: http://www.w3schools.com/jsref/jsref_replace.asp

+0

Danke @ ameenulla0007, ich fand diesen Artikel und versuchte diesen Ansatz, aber es hat es nicht funktioniert auf keinen Fall. Zu der URL werden noch '&' gedrückt. – user984621

+0

Würdest du bitte versuchen, eine Fiddle, mit einem Beispiel URL, was du versuchst zu ersetzen, so dass ich in Betracht ziehen kann, mit ihm zu arbeiten .. in der Zwischenzeit meine bewährte Geige überprüfen: https://jsfiddle.net/3w5zhufn/ – ameenulla0007