Rolf B: ? maskieren in url für javascript

Beitrag lesen

Hallo Felix,

da liegst Du nicht ganz richtig. Grundsätzlich gibt RfC 3986 für den Query-Teil einer URI kein spezielles Format vor. Key-Value Paare sind ÜBLICH, aber keine Pflicht.

Mit Key-Value Paaren macht man sich in PHP allerdings das Leben leichter, weil man dann direkt mit den $_GET-Einträgen hantieren kann, statt $_SERVER['QUERY_STRING'] von Hand zu interpretieren. Im hier gezeigten Fall ist der Sinn des angehängten Date-Wertes aber wohl eher, ein Caching zu verhindern; der Server dürfte sich also den übergebenen Wert nicht interessieren.

Wenn also nur das Date anzuhängen ist, sollte der vom OP gezeigte Code in dieser Form keinerlei Probleme auslösen.

Wenn mehre Parameter übergeben werden sollen, kann man den Anti-Cache Wert als erstes oder letztes setzen, auch mittendrin.

http://www.example.org/test.php?439830423&a=3&b=4
http://www.example.org/test.php?a=3&439830423&b=4
http://www.example.org/test.php?a=3&b=4&439830423

PHP stellt für alle 3 URL in _GET die Keys "a", "b" und "439830423" bereit. "a" mit Wert 3, "b" mit Wert 4, "439830423" mit Wert null. Aber letzterer interessiert ja keinen :)

Insofern - Aki - wenn Du ein Problem hast, liegt es möglicherweise woanders. Was genau funktioniert bei Dir nicht? Steht was in der Console oder im Netzwerktrace der Browser- Entwicklerwerkzeuge?

Das Thema "Cache aushebeln" kann man übrigens auch mit einem POST-Request lösen. POST wird nicht gecached. Den Umweg mit einem variierenden Query-String muss man nur nehmen, wenn man auf die verwendete HTTP Methode keinen Einfluss hat oder wenn der Server einen Cache für POST-Requeste hat.

Mit POST geht es so:

$.post("test.php", returnHandler);
// oder mit Parametern:
$.post("test.php", { a:3, b:4}, returnHandler);

function returnHandler(data) {
   $("#refresh").html(data);
}

Die Funktion, die die Rückgabe annimmt, kann man auch anonym und inline notieren. Man muss dann aber gut mit den Klammern aufpassen (oder mit LISP aufgewachsen sein):

$.post("test.php", { a:3, b:4}, function (data) { $("#refresh").html(data); });

Rolf

--
sumpsi - posui - clusi