Форма AMP всегда показывает ошибку отправки, даже в коде ответа 200 - PullRequest
0 голосов
/ 27 сентября 2018

Я использую форму AMP для отправки данных на мой сервер Golang.Даже если я пропущу всю обработку отправленных данных и просто напишу ответ с кодом 200, как сказано в ссылке на форму AMP, мне все равно будет показан шаблон submit-error.

Это моя форма (я пропустил поляпотому что это будет слишком долго)

<form action-xhr="/contactus" method="POST" class="contactForm" target="_top" custom-validation-reporting="show-all-on-submit" id="contactForm">
    <fieldset>
        <!-- divs with input and submit button -->
    </fieldset>
    <div submit-success>
        <template type="amp-mustache">
            Success! 
        </template>
    </div>
    <div submit-error>
        <template type="amp-mustache">
            Error! 
        </template>
    </div>
</form>

И это пример ответа сервера:

HTTP/1.1 200 OK
Content-Encoding: gzip
Vary: Accept-Encoding
Date: Sun, 23 Sep 2018 21:48:15 GMT
Content-Length: 23
Content-Type: application/x-gzip

Может ли проблема быть на стороне сервера?Я не могу понять ... Любая идея высоко ценится

Ответы [ 2 ]

0 голосов
/ 28 мая 2019

Убедитесь, что вы внедрили заголовки AMP CORS.

См .: https://amp.dev/documentation/guides-and-tutorials/learn/amp-caches-and-cors/amp-cors-requests?referrer=ampproject.org

Если запросы относятся к вашему собственному источнику (ваш домен, а не серверы с кэшированием amp), вы можете установить следующееЗаголовки-

if (req.headers['amp-same-origin'] === 'true') {
    origin = req.query.__amp_source_origin;
    sourceOrigin = origin;
}

res.set({
    'Access-Control-Allow-Origin': origin,
    'AMP-Access-Control-Allow-Source-Origin': sourceOrigin,
    'Access-Control-Allow-Source-Origin': 'AMP-Access-Control-Allow-Source-Origin',
    'Access-Control-Expose-Headers': 'Access-Control-Allow-Origin' + ', AMP-Access-Control-Allow-Source-Origin' + ', Access-Control-Allow-Source-Origin'
});
0 голосов
/ 27 сентября 2018

Мне стыдно.После нескольких дней размышлений и возвращения к этой проблеме, когда я, наконец, решил опубликовать вопрос, мне сразу же пришла в голову идея ...

Проблема с заголовком Content-type.Должно быть установлено значение JSON:

Content-type: application/json
...