Hallo
Ich habe bei meinem Dienst kuerzr.de einen AJAX Aufruf, der Links übergibt. In manchen Links sind “&”-Zeichen drin, welche von JavaScript aber dooferweise als neuen Parameter interpretiert. Dies soll nicht so sein.
Wie kann man das lösen? Die "&"s vorher in z. B. ein “©” ändern und in PHP wieder zurückändern - nur dass kein neuer Parameter anfängt? =/
Bitte schnell antworten, es ist dringend!
Andy
comjag
April 3, 2008, 5:09pm
#2
ich weißnicht ob es bei ajax geht aber bei php mach tman das mit einem escape zeichen sprich \
phg
April 3, 2008, 5:16pm
#3
Wenn du “&” für die URLs als “%26” umwandelst, geht es dann evt.? ?
In Wikipedia wird erklärt wegen der Kodierung:
de.wikipedia.org/wiki/&#Kodierung
oder eben
de.wikipedia.org/wiki/%26#Kodierung (mit %26 in URL)
Scram
April 3, 2008, 5:33pm
#4
Hm… die URL durch encodeURIComponent() schicken sollte helfen.
du musst mit AJAX die Parameter extra senden
//request erzeugen
request.open('get', 'index.php', true);
request.send('test1=ja&test2=jop');
//usw...
request.onreadystatechange = interpretRequest;
//sry…hatte nen Fehler xD
Scram
April 5, 2008, 2:10pm
#6
… das würde als Request-Body gesendet werden. GET wird über die URL gesendet, von daher stimmt sein Code bereits.
du kannst es ganz kompliziert aber effektiv machen:
Der String wird mit js base_64 codiert und dann mit php wieder decodiert
sebbo
wenn der Request-Body mit GET gesendet wird, müsste es funktionieren