我的情况如下:
我有一个名为 func.php 的 php 文件,其中包含以下代码:
<?php
if (isset ($_POST["funcName"]) && isset ($_POST["funcParams"])){
switch ($_POST["funcName"]){
case: "getItemsFromDatabase": echo json_encode (getItemsFromDatabase (...$_POST["funcParams"]));
break;
default: echo "No function selected.";
}
}
// getItemsFromDatabase function goes here
?>
我还有一个名为 func.js 的 javascript 文件,其中包含以下方法:
function displayItemsAndPageSelector (file, name, params){
$.post (file, {funcName: name, funcParams: params}, function (items){
if(!items.length){
document.getElementById ('no-results').innerHTML = 'No results found.';
}
else{
displayItems (items, start_page);
displayPageSelector (items);
setItemsAndPageSelector (items);
}
}, 'json');
}
现在这就像一个魅力,但我想用普通的 javascript 重写它所以我改变了方法如下:
function displayItemsAndPageSelector (file, name, params){
fetch (file, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify ({funcName: name, funcParams: params}),
}).then ((response) => response.json ())
.then ((items) => {
if (!items.length){
document.getElementById ('no-results').innerHTML = 'No results found.';
}
else{
displayItems (items, start_page);
displayPageSelector (items);
setItemsAndPageSelector (items);
}
}).catch ((error) => {
console.error (error);
});
但是这是行不通的。 我得到:SyntaxError: JSON.parse: JSON 数据的第 1 行第 1 列的数据意外结束。
此外,当我执行 console.log (response.json ());它说: 承诺{状态:“待定”}
所以我猜根本没有从数据库中检索到任何项目。
我已经尝试过以下方法:
非常感谢您帮助我!