接受 HTTP 请求时出现问题



我认为我的问题并不新鲜,很抱歉,如果已经问过这个问题,但我找不到与我的问题类似的东西。我想将 XMLHttpRequest 从 html 文件发送到外部 php 文件。在这个 php 文件中有一个HTTP_accept,这将返回一个带有 json_encode 的数组,以便我可以将数组加载到 html 文件中。

我认为我的问题出在document.getElementById("date").innerHTML = event.target.response.date;不知何故,HTTP_Accept的 if 语句总是错误的,因此我无法访问它。

我的 JavaScript 文件:

function loadTodo(){
    let xhr = new XMLHttpRequest();
xhr.addEventListener("load", function (event) {
    document.getElementById("date").innerHTML = event.target.response.date;
});
xhr.responseType="json";
    xhr.open("GET", "http://localhost:8080/todo_js/read.php");
    xhr.setRequestHeader("Accept", "application/json");
    xhr.send();
}

我的 php 文件:

if ($_SERVER['HTTP_ACCEPT'] == 'application/json'):
foreach ($pdo->query($query) as $row) {
    header('Content-Type: application/json');
    $id = $row['id'];
    $title = $row['dotitle'];
    $date = $row['date'];
    $status = $row['status'];
echo json_encode($row, JSON_PRETTY_PRINT | JSON_NUMERIC_CHECK);?> 

和我的 HTML 文件:

<button onClick="loadTodo()">ToDo laden</button>

getElementById 正在寻找一个 html 元素。您$data为 php 变量。这些东西不会一起工作。

此外,正如我所了解到的,我现在通过为您正在编码的过程的每个步骤设计测试来获得更好的结果。如果你对每个代码块都有一个测试,并且每个块只编写一个函数,你可以练习任何单元测试范式。将故障排除视为为每行代码设计测试的过程,可以帮助我在 90% 的时间内为自己找到答案。

最新更新