Client-seitige Erkennung von HTTP-Anfrageverfahren
-
02-07-2019 - |
Frage
Ist es möglich, die HTTP-Request-Methode (zum Beispiel GET oder POST) eine Seite von JavaScript zu erkennen? Wenn ja, wie?
Lösung
In einem Wort - Nein
Andere Tipps
Ich glaube nicht. Wenn Sie diese Informationen benötigen, schlage ich ein <meta>
Element, das auf dem Server generiert, die Sie mit JavaScript überprüfen.
Zum Beispiel mit PHP:
<meta id="request-method" name="request-method" content="<?php echo htmlentities($_SERVER['REQUEST_METHOD']); ?>">
<script type="text/javascript">
alert(document.getElementById("request-method").content);
</script>
Wenn Sie diese Funktion benötigen, müssen die Server ermitteln, welche Methode verwendet wurde, und dann etwas in dem DOM ändern, die Sie dann später auslesen können.
Sie können die Seite Referrer überprüfen:
document.referrer == document.URL
Wenn es die gleiche Seite es ziemlich wahrscheinlich, dass der Benutzer das Formular eingereicht.
Natürlich erfordert dies
- , die Sie von einer Seite sich nicht verbinden (was für die Zugänglichkeit erforderlich ist sowieso)
- , dass das Formular auf der gleichen Seite eingereicht wird es auf
- , dass der Benutzer hat die Referrer nicht deaktivieren
Sie kann dies tun, für einen normalen Post / erhalten Sie jedoch auf diese Informationen erhalten können, wenn Sie einen Anruf xmlhttp verwenden und die getResponseHeader
Try this
function getURIQueryString(){
var params = {};
var qstring = window.location.toString().substring(window.location.toString().indexOf("?") + 1);
var regex = /([^&=]+)=([^&=]+)/g;
var m;
while (m = regex.exec(qstring)){
params[decodeURIComponent(m[1])] = decodeURIComponent(m[2])
}
return params
}
Es funktioniert in der Regel. Zum Beispiel einen GET-Parameter namens Test zu erhalten. Benutze das
getURIQueryString().test
Aber es ist unmöglich, eine Post-Anforderung zu erhalten