2016-06-03 11 views
1

Ich habe folgendes Objekt:JQuery param Flucht & unterzeichnen

var ob = { 
    prop: 'ab&cs&ef' 
} 

Wenn ich param Methode von jQuery ($ .param()) verwenden, gibt sie:

"prop=ab%26cs%26ef" 

Wie kann ich es gibt folgendes zurück?

"prop=ab&cs&ef" 

aktualisieren

Ich weiß, dass, wenn ich benutze:

unescape($.param(ob)) 

Ich werde bekommen, was ich brauche. Die Unescape-Methode ist jedoch veraltet.

+1

Th Punkt 'param()' ist das Objekt zu formatieren, so kann es in einer URL übergeben werden. Wenn Sie es nicht codieren, machen die '&' Zeichen den einzelnen 'prop' Query String Parameter in 3 separate. Daher ist es nicht möglich, 'param()' dafür zu verwenden. – Rhumborl

+0

@Rhumborl, wenn ich unescape auf $ .param (..) verwende, wird die gewünschte Zeichenfolge zurückgegeben. Unescape ist jedoch veraltet. – uksz

+0

@Rhumborl zum Beispiel, was ist, wenn ich mehrere Werte für einen Parameter übergeben möchte? – uksz

Antwort

2

Sie müssen das URI-codierte Ergebnis erneut decodieren. wie folgt:

var ob = { 
    prop: 'ab&cs&ef' 
} 
alert(decodeURIComponent($.param(ob))); 
0

Haben Sie versucht, decodeURI zu verwenden?

Probe:

var uri = "http://w3schools.com/my test.asp?name=ståle&car=saab"; 
var uri_enc = encodeURIComponent(uri); 
var uri_dec = decodeURIComponent(uri_enc); 
var res = uri_enc + "<br>" + uri_dec; 

Ergebnis

http%3A%2F%2Fw3schools.com%2Fmy%20test.asp%3Fname%3Dst%C3%A5le%26car%3Dsaab  // Encoded URI 
http://w3schools.com/my test.asp?name=ståle&car=saab       // Decoded URI