Получать данные из API и отправлять их на другую страницу через AJAX - PullRequest
0 голосов
/ 20 февраля 2019

Я получаю данные от API (асаны), когда в моем рабочем пространстве было выполнено событие с помощью метода POST в файле asanatarget.php

Данные верны, и я могу сохранить их в файлекогда получил.Выглядит так:

    {"events":"resource":xxx,"user":xxx,"type":"story","action":"added","created_at":"2019-02-20T14:48:09.142Z","parent":xxx}]}

В том же файле я отправляю данные в новый файл с AJAX методом GET:

asanatarget.php

<?php 
    if(isset($_SERVER['HTTP_X_HOOK_SECRET'])) {
        $h = $_SERVER['HTTP_X_HOOK_SECRET'];
        header('X-Hook-Secret:' . $h);
        exit;
    }
    ?>
    <!DOCTYPE html>
    <html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    </head>
    <body>
<?php
 $input = file_get_contents('php://input');

    if ($input) {
        $entries = json_decode(file_get_contents('php://input'), true);
        file_put_contents('targetasanaDATA' . time() . '.txt', json_encode($entries));
?>
    <script>
        $( document ).ready(function() {
            $.ajax({
                type: "GET",
                url: "/asanawebhook", // Working with laravel, the route is well defined
                data: <?php echo json_encode($entries); ?>,
                dataType: "json",

                success: function(response){ 
                    console.log("success " + response);
                },

                error: function(jqXHR, textStatus, errorThrown) {   // What to do if we fail
                    console.log(JSON.stringify(jqXHR));
                }

            });
        });  
    </script>


<?php 
} 

?>
</body>
</html>

КогдаЯ напрямую загружаю asanatarget.php с тестовыми данными, он работает нормально, и данные передаются в / asanawebhook, но когда данные передаются непосредственно из API, это не работает.Я проверил, и данные всегда верны

1 Ответ

0 голосов
/ 20 февраля 2019

Ваш скрипт PHP генерирует только HTML-страницу (в основном, текст).

JavaScript может интерпретироваться и выполняться браузером.Но если никакой браузер не читает эту страницу и не выполняет ее, ничего не происходит.PHP генерирует веб-страницу, никто ее не читает, и все заканчивается здесь.

Вы также можете использовать PHP для отправки данных через POST.Вы можете создать свой запрос с помощью http_build_query () и использовать file_get_contents().

...