2016-03-30 5 views
1

Ich habe Client-Seite Code, der wie folgt aussieht:Format der Daten erhalten durch Ajax Anfrage?

<form name="sendCoordinates" action="http://localhost:8080/geodata" method="post"> 
     <label> MinLat: </label> 
     <input type="text" name="MinLat" value="0"><br> 
     <label> MaxLat: </label> 
     <input type="text" name="MaxLat" value="1"><br> 
     <label> MinLong: </label> 
     <input type="text" name="MinLong" value="0"><br> 
     <label> MaxLong: </label> 
     <input type="text" name="MaxLong" value="1"><br> 

     <input type="submit" value="submit" id="s1"> 
     </form> 

<script> 


     $("#sendCoordinates") 
      .on('submit', function(e) { 

       e.preventDefault(); 

       var $form = $(e.target), 
        formData = new FormData(); 
        params = $form.serializeArray(); 

       $.each(params, function(i, val) { 
        formData.append(val.name, val.value); 
       }); 

       $.ajax({ 
        url: $form.attr('action'), 
        data: formData, 
        cache: false, 
        contentType: false, 
        processData: false, 
        type: 'POST', 
        success: function(result) { 
         console.log(result + "you"); 
        } 
       }); 
      }); 
    </script> 

ich diese Formulardaten /geodata an einen Endpunkt schicke.

app.post("/geodata", function(req, res) { 
    console.log(req.body); 
}); 

Meine Frage ist, unter einem erfolgreichen Beitrag, was würde console.log(req.body) Druck auf der Server-Seite? Ich kann es noch nicht sagen, da mein Kunde aufgrund eines Fehlers noch keine Informationen sendet. Dies wird mir helfen, meinen serverseitigen Code gemäß den Daten zu schreiben, die ich in der Postanforderung erhalte.

+0

Niemand, aber sie würden es wissen. Ein Server könnte Daten in einem beliebigen Format senden - JSON, XML, sogar einfacher Text. Wenn sie es dir nicht sagen, wirst du es nicht wissen. – omnichad

Antwort

0

Sieht aus, als ob Sie Express verwenden. In der Regel werden Anfragestellen als JSON geparst (siehe Express req.body docs), aber es hängt von der verwendeten Parsing-Middleware ab (body-parser ist die gängige in Express-Apps).

Es hängt auch von der Content-Type Header der Anfrage ab. Ich oben erwähnt von dem Express docs, sie geben ein Beispiel:

app.use(bodyParser.json()); // for parsing application/json 
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded 

Es sieht aus wie Sie gerade contentType: false in Ihrem AJAX-Request gesetzt, so dass wird nur Rohdaten an den Server senden.

Um Ihre Frage konkreter

Meine Frage ist, unter einer erfolgreichen Post zu beantworten, was würde auf der Serverseite console.log (req.body) drucken?

Es hängt von der Content-Type und welche Middleware (falls vorhanden) Sie die Parse-Anfrage Körper verwenden.