Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.01.2022, 18:54
Аватар для fxobject
Кандидат Javascript-наук
Отправить личное сообщение для fxobject Посмотреть профиль Найти все сообщения от fxobject
 
Регистрация: 01.03.2021
Сообщений: 138

post параметры.
Господа, ну как то с разбегу и об стену....
Получаю http запрос, нужно вытащить post параметры. Как бы не сложно. Много примеров....
ну вот как то так:

const qs = require('querystring');
http.createServer( function(request,response){
.......
if(request.method ==="POST"){
request.on('data', function (data) { body += data.toString(); });

request.on('end', function () {
console.log(qs.parse(body));
});
...........................
в результате в body получаем:

------------------------------7db738db57ad
Content-Disposition: form-data; name="key"

popandos
------------------------------7db738db57ad
Content-Disposition: form-data; name="key1"

popandos1

и после parse оно же и остается.... (
что это за данные - писать не нужно - понятно. вопрос почему не парсит.
Руками самостоятельно распарсить - без проблем, но блин почему не парсит? есть какой то другой вариант или самому писать?
express и подобное не предлагать
С наступившим всех )))
Спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 08.01.2022, 19:52
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от fxobject
но блин почему не парсит?
Бивас, тест! (с)

Сделал такую страничку...
<!DOCTYPE html>
<html>
<head>
<!--
<script src='https://code.jquery.com/jquery-latest.min.js'></script>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
<script src='tmp.js'></script>
-->
<style>
</style>
<script>
</script>
</head>
<body>
<form method='post' action='http://localhost:3000'>
	<input name='test' type='text' />
	<input name='test' type='text' />
	<button>Send</button>
</form>
</body>
</html>

Такой сервер...
const http = require('http');
const url = require('url');
const { parse } = require('querystring');

http.createServer((request, response) => {
    console.log('server work');
    if (request.method == 'GET') {
        // GET -> получить обработать
        console.log(request.method); // !!!!
        let urlRequest = url.parse(request.url, true);
        // console.log(urlRequest);
        console.log(urlRequest.query.test); // ! GET Params
        if (urlRequest.query.test % 2 == 0) {
            response.end('even');
        }
        response.end('odd');
    }
    else {
        // POST
        let body = '';
        request.on('data', chunk => {
            body += chunk.toString();
        });
        request.on('end', () => {
            console.log('body', body);
            let params = parse(body);
            console.log('params', params);
            console.log('params.test', params.test);
            response.end('ok');
        });
    }

}).listen(3000);

https://www.itgid.info/unit/nodejs?unit=nodejs-8

Вот результат работы
server work
body test=12345&test=asdf
params [Object: null prototype] { test: [ '12345', 'asdf' ] }
params.test [ '12345', 'asdf' ]

Как по мне - все парсит.
Ответить с цитированием
  #3 (permalink)  
Старый 08.01.2022, 20:51
Аватар для fxobject
Кандидат Javascript-наук
Отправить личное сообщение для fxobject Посмотреть профиль Найти все сообщения от fxobject
 
Регистрация: 01.03.2021
Сообщений: 138

О да, свершилось чудо. засунул в post какую то фигню, ну и еще хуже получил на выходе. действительно работает... ну так нихто ж не сомневался )
Ответить с цитированием
  #4 (permalink)  
Старый 08.01.2022, 22:22
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

fxobject, у тебя пост запрос приходит как multipart/form-data а читать ты пытаешься как application/x-www-form-urlencoded.
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Rest API, POST torsar AJAX и COMET 2 17.09.2019 11:23
Помощь с POST запросом АнонимныйПарень Общие вопросы Javascript 3 02.08.2017 08:20
Скрипт для отправки POST запроса и вставки ответа в параметры флеша smls Events/DOM/Window 2 05.07.2014 18:25
Параметры Post запроса формируется Java скриптом NeoKlafilin Общие вопросы Javascript 1 23.08.2012 15:30
Jquery ajax в Operа к ASP.NET скрипту по таймеру, IIS выдает 403.9 Zhirinovsky AJAX и COMET 0 23.02.2012 12:56