簡體   English   中英

如何重定向到HTML頁面並引入附加數據?

[英]How do I redirect to an HTML page and bring in attached data?

因此,我嘗試從登錄頁面重定向到儀表板,我需要在重定向時引入一些變量,例如ID等。我無法使用MVC或.Net結構,因此我不知道該怎么做我要在重定向時引入數據,以便在移動應用程序中的其他API調用上使用。 有人嗎?

      self.LoadCustomer = function (data)
        Bring 'data' in the redirect....
        window.location = "Layout.html";
    }

永遠不要存儲密碼!!! 不需要,應始終對其進行檢查,而應存儲某種類型的到期信息。

我喜歡使用這個庫: JS-Cookie

它允許您存儲和檢索本地數據:

在第一頁上設置cookie:

self.LoadCustomer = function (data) {
   Cookies.set('data', data)
}

繼續閱讀下:

Cookies.get('data'); //String of data
Cookies.getJSON('data'); //Object literal of data

您可以使用sessionStorage達到預期的效果。 我假設數據是一個JSON對象。

self.LoadCustomer = function (data) {
    //store the data in sessionStorage
    sessionStorage.setItem("data", JSON.stringify(data) );
    window.location = "Layout.html";
}

然后在Layout.html中,您可以使用sessioStorage讀回該值。

//read the data
var data = JSON.parse( sessionStorage.getItem("data") );

正如其他人所評論的那樣,僅需注意存儲密碼的安全隱患。 如果可能,請使用會話密鑰。

這是在window.location上傳遞值的一種非常簡單且非常實用的方式,有點像GET params:

的index.html

<body>
    <script type="text/javascript" charset="utf-8">

    window.setTimeout(function(){
        var obj = {
            param1:"value",
            param2:"value"
        };
        window.location="layout.html#" + JSON.stringify(obj);
    },3000);

    </script>
</body>

的layout.html

<body onload="read()">
    <script type="text/javascript" charset="utf-8">
        function read(){
            console.log(JSON.parse(window.location.hash.replace('#','')));
        }
    </script>
</body>

考慮到更好的替代方案(本地存儲,Cookie,SPA框架或服務器技術),這將是非常不明智的做法,但是會起作用。 (實際上並沒有說太多,因為您可以使用JS進行很多糟糕的操作)。 認為這是新穎的。

如果您確實需要管理安全性,則需要實現某種類型的服務器端會話邏輯,否則便會陷入困境。

當我需要將數據傳遞到另一個頁面時,可以使用一些JavaScript來:

  1. 創建一個表單元素,
  2. 在表單中添加一個命名輸入元素,
  3. 將數據轉換為JSON並存儲在輸入中,
  4. 通過郵寄表格提交到新頁面。

這是我的輔助函數:

function submitJSON( path, data, postName ) {
    // convert data to JSON
    var dataJSON = JSON.stringify(data);

    // create the form
    var form = document.createElement('form');
    form.setAttribute('method', 'post');
    form.setAttribute('action', path);

    // create hidden input containing JSON and add to form
    var hiddenField = document.createElement("input");
    hiddenField.setAttribute("type", "hidden");
    hiddenField.setAttribute("name", postName);
    hiddenField.setAttribute("value", dataJSON);
    form.appendChild(hiddenField);

    // add form to body and submit
    document.body.appendChild(form);
    form.submit();
}

像這樣使用它:

var myData = {param1: 1, param2: 2);
var myPath = "path_to_next_page.html";
submitJSON( myPath, myData, 'myPostName' );

像這樣檢索下一頁上的數據:

<?php
    $postVarsJSON = $_POST['myPostName'];
    $myData = json_decode( $postVarsJSON );
?>

或在JavaScript中:

var myData = JSON.parse( <?php $_POST['myPostName']; ?>);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM