接受HTTP请求时遇到问题

时间:2019-06-13 03:28:40

标签: javascript php html

我认为我的问题不是新问题,很抱歉,如果已经提出这个问题,但找不到与我的问题类似的东西。 我想将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>

1 个答案:

答案 0 :(得分:1)

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

据我了解,通过为您编码过程的每一步设计测试,我现在可以获得更好的结果。如果对每个代码块进行测试,并且每个块仅编写一个函数,则可以练习任何单元测试范例。将疑难解答视为对每行代码进行测试设计的过程,可以帮助我90%的时间自己找到答案。