#javascript #node.js #forms
#javascript #node.js #формы
Вопрос:
Динамическое создание формы и вызов отправки в форме, как показано ниже:
const mapForm = document.createElement('form');
mapForm.setAttribute('id', 'export-file');
// mapForm.setAttribute('content-type','application/x-www-form-urlencoded'); - is it needed?
mapForm.target = '_blank';
mapForm.method = 'POST';
mapForm.action = '/export';
mapForm.acceptCharset = 'UTF-8';
const postData = {
fileType: exportType,
data: someJsonArray
}
let formData = [
{
name: 'postData',
value: JSON.stringify(postData)
}
]
formData.forEach(input => {
const element = document.createElement('input');
element.type = 'hidden';
element.name = input.name;
element.value = input.value;
mapForm.appendChild(element);
});
document.body.appendChild(mapForm);
mapForm.submit();
На узловом сервере у меня есть эти:
app.use('/export', bodyParser.urlencoded({extended:true}));
app.use('/export', exportAPI);
и exportAPI.js файл содержит следующее:
не вижу никаких данных, когда я регистрирую req.body.
router.post('/',(req, res) => {
try {
logger.info(req.body); -- DONT SEE ANY DATA IN THIS LINE
//....
} catch (err) {
logger.error('error in export');
//...
}
});
Комментарии:
1. Что говорит вкладка «Сеть»?
2. вкладка «Сеть» не содержит ошибок или чего-либо еще
3. Я хочу спросить, какие данные он передает?
4. element.name = input.name ; — элемент ‘postData’.value = input.value; — ‘Stringified json objectvt’
5. Если вкладка «Сеть» содержит фактические данные, то сервер должен их получить
Ответ №1:
Действие формы указывает на «/ export», но промежуточное программное обеспечение вашего узла находится в «/ datacloud / orgbm / export». Таким образом, в основном узел не получает правильный запрос.
Можете ли вы изменить действие формы на ‘/ datacloud / orgbm / export’?
Комментарии:
1. Вы видите какой-либо регистратор
router.post('/',(req, res) => {
?2. Я вижу заголовки и все остальное в запросе, кроме значения, которое я передал в форме