Итак, я пытаюсь настроить форму усилителя, которая выступает в качестве основы для более крупной нормальной формы, но мне нужно также захватить данные из формы усилителя для наших сегментированных и аналитических данных.Я пытаюсь сделать это со средней страницей, на которую отправляет форма усилителя, которая будет захватывать и пересылать данные, а затем перенаправлять пользователя и его данные в полную форму.
Я настроил форму усилителя,Упрощенный код выглядит следующим образом (упрощено для одного поля для публикации здесь, но проверено и та же проблема):
<form class="amp-lead-form" method="post" action-xhr="<?php get_site_url() ?>/submit-amp-form.php" target="_top" custom-validation-reporting="show-first-on-submit">
<fieldset style="border: none;">
<label>
<input class="text_input" type="text"
id="first_name"
name="first_name"
placeholder="First Name"
required
pattern="([a-zA-ZàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ∂ð,.'-])\w+">
<span visible-when-invalid="valueMissing"
validation-for="first_name"><br>Please enter your first name.</span>
<span visible-when-invalid="patternMismatch"
validation-for="first_name">
<br>Please enter just your first name.</span>
</label>
<div style="clear: both;"></div>
<input class="amp-form-submit" type="submit" name="submit" value="GET STARTED">
</fieldset>
</form>
Код средней страницы выглядит следующим образом (это голые кости для проверки формы, безопасности ивсе остальное, что мне нужно, будет добавлено, как только я получу данные):
<?php
require_once( dirname( __FILE__ ) . '/wp-load.php' );
$domain_url = (isset($_SERVER['HTTPS']) ? "https" : "http") . "://".get_site_url();
header("Content-type: application/json"); //I also tried with multipart/form-data and application/x-www-form-urlencoded
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Origin: ". str_replace('.', '-',get_site_url()) .".cdn.ampproject.org");
header("AMP-Access-Control-Allow-Source-Origin: " . get_site_url());
header("Access-Control-Expose-Headers: AMP-Access-Control-Allow-Source-Origin");
header("AMP-Redirect-To: ".get_site_url()."/submit-amp-form.php");
header("Access-Control-Expose-Headers: AMP-Redirect-To, AMP-Access-Control-Allow-Source-Origin");
//dump data to page so I can view
$data = file_get_contents('php://input');
var_dump($data);
var_dump($_POST);
?>
Сейчас на средней странице отображаются только данные, поэтому я вижу, что они отправляются правильно, но отображается следующее:
DATA:
string(0) ""
array(0) {
}
Что говорит о том, что данные не отправляются или не принимаются должным образом.Когда я изменяю метод формы get и action-xhr на action, он отправляет и получает данные get.Я исследовал Интернет и обнаружил, что обычно это означает, что конечная точка не реализует защиту CORS, но я считаю, что у меня есть все необходимые заголовки на странице, поэтому я действительно не знаю, куда идти дальше.Любая помощь?