Avatar
alex
Člen
Avatar
alex:

ahoj , snazim sa poslat formu na server

Pouzivam

  <form method="post" action="/data" onsubmit="return postData()" enctype="application/x-www-form-urlencoded">
      <input type="password" name="passwd" placeholder="Password">
      <input type="text" name ="name" placeholder="UserName">
      <input type="submit" value="Submit"/>
  </form>

<script>
function postData(e){
    var form   = document.querySelector("form");
    var inputs = form.querySelectorAll('input');
    var data   = {}
          Array.prototype.forEach.call( inputs , function(x){
            if( x.type != 'submit')
                data[x.name] = x.value;
          })

    console.log(form.action, JSON.stringify(data))
    var req = new XMLHttpRequest();
    req.open('POST' , form.action , true);
    req.setRequestHeader("content-type", "text/json");
    req.send(data);
    return false;
}

</script>

a na severy

var express = require("express");
var app     = express();
var bodyParser = require('body-parser');

app.use(bodyParser.json()); // for parsing application/json



app.get('/' , function( req, res ){
        res.sendfile("index.html");
})


app.post('/data',function( req , res){
        console.log('got data asdd', req.body)
})
app.listen(8080)

avsak vzdy vypise req.body ako prazdny object.

Taktiez som skusal posielat bez ajaku tj

 <form method="post" action="/data"  enctype="application/x-www-form-urlencoded">
    <input type="password" name="passwd" placeholder="Password">
    <input type="text" name ="name" placeholder="UserName">
    <input type="submit" value="Submit"/>
</form>

ale robi to to iste , vie mi dakto poradit co je s tym? Dik

 
Odpovědět 21. srpna 13:38
Avatar
Taskkill
Redaktor
Avatar
Odpovídá na alex
Taskkill:

Uprav si jen na zkoušku kód na serveru abys logoval ten objekt zvlášť. Když dáš v js console.log text + objekt neprovede se ti na ten objekt dir ... Neříkám, že to hned vyřeší problém, ale jen taková poznamka co zjednoduší život.

 
Nahoru Odpovědět 21. srpna 15:15
Avatar
Petr Štechmüller:

Ahoj, v serveru, kde používáš bodyparser na json, přidej ještě tuto řádku:

app.use(bodyParser.urlencoded({extended: true}));
Akceptované řešení
+20 Zkušeností
Řešení problému
Nahoru Odpovědět 21. srpna 15:43
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.