我想将json对象从第1页发送到第2页而不进行服务器交互我到目前为止尝试的是这样的
从第1页开始我有这段代码
url = '../reports/page2.php?basicinfo=' + encodeURIComponent(JSON.stringify(basicinfo));
window.open(url + "&month=" + month, '_self');
第二页中的我通过从url获取对象来访问数据。
但我有一个问题。我超过The requested URL's length exceeds the capacity limit for this server.
所以我想尝试使用ajax我可以尝试的是
var url = '../reports/page2.php;
var basicinfo = JSON.stringify(basicinfo)
$.ajax({
type: 'POST',
contentType: "application/json; charset=utf-8",
dataType: "json",
data: {
action: "page2",basicinfo:'basicinfo '
},
complete: function() {
window.location = url;
}
});
我被引导到正确的页面我的问题是我现在无法获取数据。
答案 0 :(得分:1)
为此,您可以使用localstorage将您的json保存在localstorage变量中并随时获取
localStorage.setItem('favoriteflavor','vanilla'); /*how to save data in localstorage*/
var taste = localStorage.getItem('favoriteflavor');/*how to fetch data from localstorage*/
alert(taste);
localStorage.removeItem('favoriteflavor');/*how to delete data from localstorage*/
有关详情,请点击here
所以在
之前将所有json保存在localstorage变量中window.location = url;
在您的ajax
complete
部分,并在重定向后获取localstorage
数据(即在此页url
上)
如果您不想使用jquery变量来保证数据安全。然后唯一可能的方法是使用cookie。 这是堆栈上的链接,您可以在其中查看如何使用jquery how to save data in a cookie using jquery
创建cookie答案 1 :(得分:0)
尝试将此内容写入文件并从弹出窗口中读取。
http://php.net/manual/en/function.file-put-contents.php
http://php.net/manual/en/function.file-get-contents.php
答案 2 :(得分:0)
HTTP是无状态协议。当您重定向到另一个页面时 - 它是新请求,前一页的数据将丢失。 在页面之间共享数据需要存储数据(来自第一个ajax请求),例如在会话中,并从第二页的会话中恢复数据。