Где будет определен xhr.send для отправки пользовательских данных в API? - PullRequest
0 голосов
/ 08 марта 2020

Мое приложение не работает при проверке reCaptcha. Единственная оставшаяся ошибка проиллюстрирована на скриншоте 1.

Может кто-нибудь помочь мне понять, если дело только в том, что переменная xhr.send не определена? Если да, то где это нужно определить? Извините - я не разработчик и просто пытаюсь установить sh масштаб моей проблемы, чтобы продолжить исследование.

Снимок экрана 1: Ошибка с точки зрения сети моего Chrome инструмента веб-разработчика

Снимок экрана 2: Специфика c Ошибка в моем angular. js файле со ссылкой на xhr.send

Вот код моей капчи проверка PHP файл:

    <?php

  $postData = file_get_contents("php://input");
  $request = json_decode($postData);

  header('Access-Control-Allow-Origin: *');

echo json_encode(isValid($request->captchaResponse));
exit;

function isValid($response) {
    try {
        $url = 'https://www.google.com/recaptcha/api/siteverify';
        $data = [
            'secret' => 'mykeyishere',
            'response' => $response
        ];

        $options = [
            'http' => [
                'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
                'method'  => 'POST',
                'content' => http_build_query($data)
            ]
        ];

        $context = stream_context_create($options);
        $result = file_get_contents($url, false, $context);
        return json_decode($result);
    }
    catch (Exception $e) {
        return null;
    }
}

?>

Добавление информации заголовка в соответствии с запросом: Снимок заголовка

1 Ответ

0 голосов
/ 08 марта 2020

Поскольку я проверял, что ваше приложение не работает на Apache веб-сервере, вместо этого оно использует Node.js веб-сервер (вероятно Express. js), а файлы c stati обслуживаются Ecstati c stati c промежуточное программное обеспечение файлового сервера (так он себя идентифицирует: Node.js v8.15.0/ ecstatic server running @ li1252-85.members.linode.com:8080). А поскольку это веб-сервер на основе узла, он не настроен для правильной обработки сценариев PHP, и все ваши сценарии PHP возвращаются в виде простого текста.

И причина этой ошибки 405 HTTP заключается в конфигурации этого Node-based сервера. Для Express. js вы можете определить, какие методы запроса и какие маршруты обслуживать, а другие будут отвечать как 404 (для разрешенных методов запроса) или 405 (для недопустимых методов запроса).

...