it-swarm.com.de

Wie werden Sonderzeichen in Abfragezeichenfolgen eingefügt?

Die folgende URL funktioniert einwandfrei:

http: // localhost/mysite/mypage? param = 123

Wenn ich jedoch einige Sonderzeichen in `param wie ?, /,\einfügen möchte, lautet die URL:

http: // localhost/mysite/mypage? param = a =? & b =/

oder

http: // localhost/mysite/mypage? param = http: //www.mysite.com/page2? a = \ & b = ...

was nicht funktioniert Wie löse ich dieses Problem?

19
KentZhou

Sie müssen Sonderzeichen in URLs eingeben. Siehe: http://www.w3schools.com/tags/ref_urlencode.asp

20
Steven P.

Sie müssen die Abfrageparameter codieren, bevor Sie sie zu einer URL zusammenfassen. Die hier benötigte Funktion ist encodeURIComponent . Zum Beispiel

die URL, die Sie erstellen müssen, ist:

http://localhost/mysite/mypage?param=a=?&b=/

Angenommen, das? und/kommt als Variable, Sie müssen sie kodieren, bevor Sie die URL einfügen. So erstellen Sie Ihre URL mit dieser Funktion (Ich erwarte zwei Abfrageparameter):

 var q1 = "a=?"; //came from some input or something
    var q2 = "/"; //came from somewhere else

    var faultyUrl =  "http://localhost/mysite/mypage?param="+ q1 +"&b=" + q2; 
// "http://localhost/mysite/mypage?param=a=?&b=/"


    var properUrl =  "http://localhost/mysite/mypage?param="+ encodeURIComponent(q1) +"&b=" + encodeURIComponent(q2); 
//"http://localhost/mysite/mypage?param=a%3D%3F&b=%2F"

Diese Funktion ist in Basic JS enthalten und wird in allen Browsern unterstützt.

7
Kop4lyf

In JavaScript können Sie die Funktion encodeURI () verwenden. 

ASP verfügt über die Funktion Server.URLEncode () .

HttpServerUtility.UrlEncode in .NET

3
Vishal Seth

Einfache Möglichkeit, den QueryString-Wert mit Sonderzeichen mithilfe von Javascript zu übergeben:

var newURL=encodeURIComponent(uri);
window.location="/abc/abc?q="+newURL;
2

Sie müssen codierte Sonderzeichen verwenden, siehe this page für eine Referenz.

Wenn Sie PHP verwenden, gibt es dazu eine Funktion namens urlencode () .

1
JYelton

Ich habe unten getan, es funktioniert gut.

const myQueryParamValue = "You&Me";
const ajaxUrl = "www.example.com/api?searchText="+encodeURIComponent(myQueryParamValue)

Sie müssen die Zeichen durch URL-Entitäten ersetzen. Einige Informationen hier.

0
Moonshield