Возможно ли получить предыдущую переменную формы POST, используя JavaScript? - PullRequest
0 голосов
/ 22 августа 2011
  1. Клиент переходит на example.com/form.html, где отображается html-форма POST
  2. Клиент заполняет форму конкретной информацией и отправляет ее на example.com/form.html
  3. Когда example.com/form.html получает запрос POST, перенаправляет клиента на example.com/redirected.html Возможно ли получить переменные, которые клиент заполнил и отправил в example.com/form, используя javascript?Развертывание javaScript только для example.com/redirected.html.Я предполагаю, что могут быть некоторые «задние» элементы управления, если задействованы фреймы и ajax, но я пока не смог найти надежного решения.

    Операция будет выполняться в том же домене, поэтому не возникает проблем с несколькими доменами.

Ответы [ 3 ]

0 голосов
/ 22 августа 2011

В HTML5 используйте localstorage . (Ответ описывает, как хранить объект в localstorage - вы можете хранить там объект ваших полей формы).

Но вы должны сохранить данные о публикации с js на example.com/form.html, а затем получить их на example.com/redirected.html. Без js в form.html это невозможно с этим методом.

Это работает, если вы планируете использовать html5 и не храните в нем слишком много данных, iirc имеет ограничение 5-10 МБ в зависимости от браузера.

0 голосов
/ 22 августа 2011

Я не думаю, что есть способ сделать это, используя обычный HTML.С некоторым серверным языком (например, PHP) это можно сделать без проблем.

Я уже сталкивался с подобной ситуацией, и мне удалось передать данные в JS путем включения данных втег при подготовке вывода с использованием PHP.

Предполагается, что перенаправленный в php скрипт получает данные POST от скрипта, в который он перенаправлен.* Это позволит javascript знать, что содержат значения POST.Чтобы получить доступ к значениям из js:

//assuming you need the value for $_POST['foo']
var foo = postData.foo;
// or if json is encoded as just an associative array
var foo = postData['foo'];

Если данные POST не передаются в перенаправленный в сценарий (не проверял, происходит ли это автоматически), вы можете записать данные $ _POST в $Переменная _SESSION, в первом скрипте php:

<?php
  $_SESSION['postdata']=$_POST;
?>

и затем возвращает его из SESSION из перенаправленного в скрипт.

<?php
  $postdata = $_SESSION['postdata']; //use this to create the inline script in the html
  unset($_SESSION['postdata']; //empty this from the SESSION variables
?>
0 голосов
/ 22 августа 2011

Нет, я не думаю, что это возможно.

Вы должны либо

  • Сохранить опубликованное значение в файле cookie
  • Сохранить опубликованное значение в переменной сеанса на стороне сервера
  • Добавить опубликованное значение в качестве параметра GET к новому URL-адресу
  • Используйте GET для публикации оригинальной формы и мучительно извлекайте опубликованное значение из document.referer на новой странице
...