Обнаружение на стороне клиента метода HTTP-запроса - PullRequest
31 голосов
/ 23 сентября 2008

Можно ли определить метод HTTP-запроса (например, GET или POST) страницы из JavaScript? Если да, то как?

Ответы [ 6 ]

30 голосов
/ 23 сентября 2008

Одним словом - Нет

18 голосов
/ 23 сентября 2008

Я не верю в это. Если вам нужна эта информация, я предлагаю включить элемент <meta>, созданный на сервере, который вы можете проверить с помощью JavaScript.

Например, с 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>
7 голосов
/ 20 июля 2011

Вы можете проверить реферер страницы:

document.referrer == document.URL

Если это та же страница, вполне вероятно, что пользователь отправил форму.

Конечно, это требует

  • что вы не связываете страницу со своей страницей (что в любом случае требуется для доступности)
  • что форма отправляется на ту же страницу, что и на
  • чтобы пользователь не отключил реферер
7 голосов
/ 23 сентября 2008

Если вам нужна эта функциональность, попросите сервер определить, какой метод был использован, а затем измените что-то в DOM, чтобы потом прочитать его позже.

1 голос
/ 23 сентября 2008

Вы не можете сделать это для обычной записи / получения, однако вы можете получить эту информацию, если вы используете вызов xmlhttp и используете getResponseHeader

0 голосов
/ 03 ноября 2018

Попробуйте это

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
}

Обычно это работает. Например, чтобы получить параметры с именем test. Использовать этот

getURIQueryString().test

Но невозможно получить почтовый запрос

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...