Я новичок в AMP и столкнулся с проблемой при отправке форм. В документации усилителя говорится, что значение action-xhr должно быть https, однако я работаю над http://localhost: 3000 . Я надеюсь получить совет по настройке конечной точки формы и конечной точки API, которая будет работать в разработке и, если возможно, в действующем домене!
Вот код, который я первоначально использовал, конечная точка получит запрос, но тело будет пустым, а клиентская сторона получит следующую ошибку после длительной загрузки: «Ошибка загрузки XHR (http://localhost: 3000 /...): ошибка загрузки»
API:
app.post("/api/contact", function (req, res) {
console.log(req.body);
});
Форма:
<form method="post" action-xhr="/api/contact" target="_top">
<fieldset>
<label>
<span>Name:</span>
<input type="text" name="name" required>
</label>
<input type="submit" value="Send">
</fieldset>
<div submitting>
...
</div>
<div submit-success>
...
</div>
<div submit-error>
...
</div>
</form>
Сервер:
require("dotenv").config();
var express = require("express");
var app = express();
var PORT = process.env.PORT || 3000;
// Middleware
app.use(express.urlencoded({ extended: false }));
app.use(express.json());
app.use(express.static('public'));
// Routes
require("./routes/htmlRoutes")(app);
require("./routes/apiRoutes")(app);
// Starting the server ------------------------------------/
app.listen(PORT, function () {
console.log(
"==> ? Listening on port %s. Visit http://localhost:%s/ in your browser.",
PORT,
PORT
);
});
module.exports = app;