Почему AJAX возвращает NaN, если числовые данные не запрашиваются? - PullRequest
0 голосов
/ 25 марта 2019

Я играю в консоли с Vanilla JS, смотрю, как извлечь данные с веб-страниц, надеюсь, создать веб-расширение для автоматизации некоторых деталей получения данных, предоставляемых только через Интернет.

datastore = {hash: <a random alphanumeric string>, value: <some string>}

button.onclick = function (){
    console.log("Sending to database");
    storeData(datastore);
}

Источником данных и назначением данных являются разные URL-адреса, а для получателя SSL еще не включен.

function storeData(data){
    var xhr = new XMLHttpRequest();
    xhr.open("PUT", "//server/lib/insert_data.php") 
    xhr.onreadystatechange = function () {
      console.log(xhr.readyState + ", Text: " + xhr.responseText, + ", Status: " + xhr.status);
    }
    xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xhr.send("option=" + data.hash);
}

Я проверяю, что сервер может обработать запрос:

insert_data.php:
<?php
    if(isset($_POST['option'])){
        $source_id = $_POST['option'];
    }

    echo json_encode($option);
?>

Консоль возвращает NaN как responseText, и я потратил несколько часов на изучение того, что это значит.

07:50:01.828 Sending to database        Scratchpad/4:41:2
07:50:06.170 2, Text:  NaN              Scratchpad/4:114:7
07:50:06.172 4, Text:  NaN              Scratchpad/4:114:7

Я не уверен, как проверить, что серверная сторона получает с точки зрения данных, так что любые советы о том, как отлаживать это было бы полезно.

Я не уверен, пытаюсь ли я сделать что-то, что невозможно сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...