首页 > 解决方案 > 接受 HTTP 请求的问题

问题描述

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

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

我的 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>

标签: javascriptphphtml

解决方案


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

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


推荐阅读