2011-08-22 32 views
0
  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的變量?僅在example.com/redirected.html上部署的javaScript。我認爲這可能是一些「後退」控制iframes和ajax,但我還找不到可靠的解決方案。是否有可能使用javascript獲取以前的表單POST變量?

    操作將發生在同一個域所以沒有跨域問題涉及

+0

您*可以*將值存儲在cookie中。不知道這是否是最好的方法。 –

+0

Cookie不允許使用,因此我不使用Cookie方式 – Michael

回答

0

不,我不認爲這是可能的。

你必須要麼

  • 存儲在cookie中
  • 存儲在服務器端的會話變量中貼出值公佈值
  • 作爲GET參數添加張貼的值到新網址
  • 使用GET發佈的原始形式,而痛苦了新的一頁
0
document.referer提取公佈值

使用HTML5,請使用localstorage。 (答案描述瞭如何在localstorage中存儲對象 - 您可以在其中存儲表單域的對象)。

,你必須將數據存儲在在example.com/form.html與JS發佈,然後可以得到它example.com/redirected.html。沒有js在form.html,這是不可能的這種方法。

如果您打算使用html5並且不在其中存儲太多數據,那麼iirc具有5-10mb的限制,具體取決於瀏覽器。

0

我不認爲有一種方法可以通過使用普通的html來做到這一點。使用一些服務器端語言(如PHP)可以毫無問題地完成。

我以前曾經遇到類似的情況,並且我設法將數據提供給JS的方式是在使用PHP準備輸出時將數據包含在標記中。

假設重定向到PHP腳本從它在被重定向腳本接收POST數據我會包括這個在PHP代碼:

<?php 
    echo '<script type="text/javascript">'; 
    echo 'var postData = '.json_encode($_POST).';'; 
    echo '</script>' 
?> 

這將產生的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數據沒有被傳遞到重定向到腳本(還沒有檢查,如果這是自動發生的),你可以在$ _SESSION寫$ _ POST數據變量,在第一個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 
?> 
相關問題