Подтвердить что ты не робот

Как читать параметры запроса сообщения с помощью javascript

Я пытаюсь прочитать параметры запроса почты из своего html. Я могу прочитать параметры запроса получения, используя следующий код в javascript.

$wnd.location.search

Но это не работает для post request.Can, кто-нибудь скажет мне, как читать значения параметров запроса сообщения в моем html, используя javascript.

4b9b3361

Ответ 1

Данные POST - это данные, которые обрабатываются на стороне сервера. И Javascript находится на стороне клиента. Таким образом, вы не можете читать данные сообщения с помощью JavaScript.

Ответ 2

Небольшая часть PHP, чтобы заставить сервер заполнять переменную JavaScript быстро и легко:

var my_javascript_variable = <?php echo $_POST['my_post'] ?>;

Затем просто войдите в переменную JavaScript обычным способом.

Ответ 3

JavaScript - это клиентский язык сценариев, который означает, что весь код выполняется на компьютере пользователя. Переменные POST, с другой стороны, идут на сервер и находятся там. Браузеры не предоставляют эти переменные среде JavaScript, и ни один разработчик не должен ожидать, что они там будут волшебным образом.

Поскольку браузер запрещает JavaScript доступ к данным POST, практически невозможно прочитать переменные POST без внешнего субъекта, такого как PHP, который выводит значения POST в переменную сценария или расширение/дополнение, которое захватывает значения POST при передаче. Переменные GET доступны через обходной путь, потому что они находятся в URL, который может быть проанализирован клиентским компьютером.

Ответ 4

Почему бы не использовать localStorage или какой-либо другой способ установить значение, которое вы хотел бы пройти?

Таким образом у вас есть доступ к нему из любого места!

Ответ 5

Используйте sessionStorage!

$(function(){
    $('form').submit{
       document.sessionStorage["form-data"] =  $('this').serialize();
       document.location.href = 'another-page.html';
    }
});

Ответ 6

POST - это то, что браузер отправляет от клиента (вашего браузера) на веб-сервер. Почтовые данные отправляются на сервер через HTTP-заголовки и доступны только на стороне сервера или между путём (пример: прокси-сервер) от клиента (ваш браузер) до веб-сервера. Поэтому его нельзя обрабатывать с клиентских сценариев, таких как JavaScript. Вам нужно обрабатывать его с помощью сценариев на стороне сервера, таких как CGI, PHP, Java и т.д. Если вам все равно нужно писать на JavaScript, вам необходимо иметь веб-сервер, который понимает и выполняет JavaScript на вашем сервере, например Node.js

Ответ 7

Вы можете прочитать параметр запроса сообщения с помощью jQuery-PostCapture (@ssut/jQuery-PostCapture).

Плагин PostCapture состоит из нескольких трюков.

Когда вы нажмете кнопку отправки, будет отправлено событие onsubmit.

В то время PostCapture будет сериализовать данные формы и сохранить в html5 localStorage (если есть) или хранилище файлов cookie.

Ответ 8

Если вы работаете с Java/REST API, обойти это легко. На странице JSP вы можете сделать следующее:

    <%
    String action = request.getParameter("action");
    String postData = request.getParameter("dataInput");
    %>
    <script>
        var doAction = "<% out.print(action); %>";
        var postData = "<% out.print(postData); %>";
        window.alert(doAction + " " + postData);
    </script>

Ответ 9

Вы можете прочитать его у сервисного работника. Однако это требует, чтобы они были на этой странице раньше и ранее зарегистрировали сервисного сотрудника. Вам также нужно будет запустить страницу на https или localhost, чтобы она работала

Ответ 10

Вы можете "json_encode" сначала кодировать свои переменные post через PHP. Затем создайте объект (массив) JS из почтовых переменных, кодированных JSON. Затем используйте цикл JavaScript для управления этими переменными... Например - в этом примере ниже - для заполнения формы HTML-формы:

<script>

    <?php $post_vars_json_encode =  json_encode($this->input->post()); ?>

    // SET POST VALUES OBJECT/ARRAY
    var post_value_Arr = <?php echo $post_vars_json_encode; ?>;// creates a JS object with your post variables
    console.log(post_value_Arr);

    // POPULATE FIELDS BASED ON POST VALUES
    for(var key in post_value_Arr){// Loop post variables array

        if(document.getElementById(key)){// Field Exists
            console.log("found post_value_Arr key form field = "+key);
            document.getElementById(key).value = post_value_Arr[key];
        }
    }


</script>

Ответ 11

Один из вариантов - установить cookie в PHP.

Например: cookie с именем invalid со значением $invalid срок действия которого истекает через 1 день:

setcookie('invalid', $invalid, time() + 60 * 60 * 24);

Затем прочитайте его обратно в JS (используя плагин JS Cookie):

var invalid = Cookies.get('invalid');

if(invalid !== undefined) {
    Cookies.remove('invalid');
}

Теперь вы можете получить доступ к значению из invalid переменной в JavaScript.

Ответ 12

Это зависит от того, что вы определяете как JavaScript. В настоящее время у нас фактически есть JS в программах на стороне сервера, таких как NodeJS. Это точно такой же JavaScript, который вы кодируете в своем браузере, за исключением языка сервера. Таким образом, вы можете сделать что-то вроде этого: (Код Кейси Чу: fooobar.com/questions/15951/...)

var qs = require('querystring');

function (request, response) {
    if (request.method == 'POST') {
        var body = '';

        request.on('data', function (data) {
            body += data;

            // Too much POST data, kill the connection!
            // 1e6 === 1 * Math.pow(10, 6) === 1 * 1000000 ~~~ 1MB
            if (body.length > 1e6)
                request.connection.destroy();
        });

        request.on('end', function () {
            var post = qs.parse(body);
            // use post['blah'], etc.
        });
    }
}

И оттуда используйте post['key'] = newVal; так далее...

Ответ 13

Клиент имеет почтовые данные, потому что клиент отправил почтовые данные. Вы не можете избежать этого факта.

Javascript исключен по дизайну, а не по необходимости.

Ответ 14

Переменные POST доступны только браузеру, если тот самый браузер отправил их в первую очередь. Если другая форма веб-сайта отправляется через POST на другой URL-адрес, браузер не увидит данные POST.

САЙТ A: имеет форму отправить на внешний URL (сайт B), используя POST САЙТ B: получит посетителя, но только с переменными GET.

Ответ 15

function getParameterByName(name, url) {
            if (!url) url = window.location.href;
            name = name.replace(/[\[\]]/g, "\\$&");
            var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
                results = regex.exec(url);
            if (!results) return null;
            if (!results[2]) return '';
            return decodeURIComponent(results[2].replace(/\+/g, " "));
        }
var formObj = document.getElementById("pageID");
formObj.response_order_id.value = getParameterByName("name");

Ответ 16

$(function(){
    $('form').sumbit{
        $('this').serialize();
    }
});

В jQuery приведенный выше код даст вам URL-строку с параметрами POST в URL-адресе. Невозможно извлечь параметры POST.

Чтобы использовать jQuery, вам нужно включить библиотеку jQuery. Для этого используйте следующее:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js" type="text/javascript"></script>

Ответ 17

Мы можем собрать параметры формы, представленные с помощью POST, используя serialize.

Попробуйте следующее:

$('form').serialize(); 

Просто включите его, он отобразит все параметры, включая скрытые.

Ответ 18

<head><script>var xxx = ${params.xxx}</script></head>

Используя EL выражение ${param.xxx} в <head>, чтобы получить параметры из метода post, и убедитесь, что файл js включен после <head>, чтобы вы могли обрабатывать параметр как "xxx" непосредственно в вашем js.