javascript - XMLHttpRequest POST _self 使用 localStorage 和 PHP
问题描述
我正在使用 PHP 7.3 和 MySQL v5.6。
浏览目录页面,我将一些项目 id 存储到localStorage.wishlistStorage.data
,现在在愿望清单页面上,我想检索这个 id 列表以进行显示。我正在使用 PHP,因为稍后我将从数据库中发送和检索项目。此外,使用 PHP 和 POST 数组动态构建 HTML 也很容易。不幸的是,我正在为 AJAX XMLHttpRequest 苦苦挣扎。
我在页面底部加载一个 Javascript 文件来检索 localStorage 数据:
var wishlistStorage = {};
window.addEventListener("load", function() {
wishlistStorage.get();
loadWishlist();
});
wishlistStorage = {
data : null, // empty storage
get : function() {
wishlistStorage.data = localStorage.getItem("wishlistStorage");
if(wishlistStorage.data === null) {
wishlistStorage.data = { items: [], item_notes: [], comments: '' };
wishlistStorage.save();
}
else {
wishlistStorage.data = JSON.parse(wishlistStorage.data);
}
}
};
// get wishlist contents
function loadWishlist() {
var items = wishlistStorage.data.items.join("%20");
var wishlistRequest;
if(window.XMLHttpRequest) {
wishlistRequest = new XMLHttpRequest();
} else {
wishlistRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
wishlistRequest.onreadystatechange = function() {
if(wishlistRequest.readyState == 4 && wishlistRequest.status == 200) {
console.log("Got them.");
} else {
console.log("I see nothing.");
}
wishlistRequest.open("POST", "_self", true);
wishlistRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
wishlistRequest.send("wishlist_items=" + encodeURIComponent(items));
}
}
在 wishlist.php 的正文中
<?php
if (array_key_exists('wishlist', $_POST)) {
$temporary_wishlist = $_POST['wishlist'];
echo "Yes, it works! $temporary_wishlist";
} else {
echo 'Invalid parameters!';
}
?>
我得到的只是“无效参数”消息。没有任何 console.log 消息出现。我哪里错了?
解决方案
推荐阅读
- c# - projekt中localDb的文件路径
- opencv - OpenCV背景模型成分提取
- where - 我试图在 crud 控制器中使用 addclause where in (1,2,4,5,6...)
- python - QregExp 类 PyQt4
- c# - 如何使用 msbuild 15 从生成的 nuget 包中的 nuspec 文件中删除依赖项部分
- python - 你能用 Tox 中的文件列表遍历命令吗
- qt - 让 QTabWidget 平放
- algorithm - 我怎样才能找到这个问题的复杂性:循环中的递归函数
- r - 在函数 R 中循环
- internationalization - 如何国际化 QMessageBox::warning 上的按钮?