我做了一些研究,甚至有一本书解释了 Ajax 调用 php 以及在浏览器和服务器之间发送数据。我发现这非常接近我所需要的,因为我使用的是本地存储 How can I pass saved localStorage web data to a php script? ,这个链接看起来非常连贯,但我不知道在 PHP 端要做什么 How to pass data from Javascript to PHP and vice versa? ,
虽然我有一个更大的问题,我在本地存储中的数据量非常大,有几个不同的数组存储在那里并且是JSON编码的,当我获取数组时我使用JSON.parse并设置存储中的数组我将其字符串化。怎么才能发送这样的数据呢? localStorage 中的数据也并非都是数组,本地存储中有数百个变量需要保存。
编辑:
这是我的代码,因为我注意到它是需要的。 我正在尝试将本地存储中的所有数据发送到服务器以保存在数据库中。
function postData(){
var storage = JSON.stringify(localStorage);
var xhr;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
else {
throw new Error("Ajax is not supported by this browser");
}
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
if (xhr.status === 200 && xhr.status < 300) {
document.getElementById('div1').innerHTML = xhr.responseText;
}
}
};
xhr.open('POST', 'Membership.php');
xhr.setRequestHeader("Content-Type: text/json", "application/x-www-form-urlencoded");
xhr.send("data=" + storage);
}
在 PHP 方面我有
if ($_POST){
$data = json_decode($_POST['data']);
echo "The data" .$data;
}
我不知道这是否正确,我找不到任何关于如何传递所有本地存储数据的内容,这基本上是我之前想问的,但显然未能传达这一点。
最佳答案
基本上你需要做的是:
- 从 localStorage 中检索所有数据
- 将所有内容字符串化(现在您拥有所有数据的 JSON 表示形式)
使用 jQuery 或 other_framework_of_choice 准备 AJAX 请求,并将负载设置为字符串化数据并发送:
- 发送
Content-type: text/json
向服务发送您正在发送 JSON 数据的提示(可选,但推荐)
- 发送
在 PHP 端处理数据(即
json_decode
有效负载,并使用您自己的逻辑处理它以满足您的需求。
注意:
您没有提供任何代码,所以我会跳过编码部分(我无法猜测您的代码,伙计)
编辑
您可以引用Send data from localStorage via AJAX to PHP and save it in an HTML file 只需跳过保存部分并替换为您想要的处理
关于javascript - 将 localStorage 数据发送到 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25191944/