Bazı form verilerini son noktaya göndermeye çalışıyorum. Ben sunucu tarafı kod üzerinde enpoint (express.js) sahipForm Verilerini Düğüm Sunucusuna Gönderme
<form name="form" action="http://localhost:8080/geodata" method="post">
<label for="minlat"> MinLat: </label>
<input type="text" name="MinLat" value="0"><br>
<label for="maxlat"> MaxLat: </label>
<input type="text" name="MaxLat" value="1"><br>
<label for="minlong"> MinLong: </label>
<input type="text" name="MinLong" value="0"><br>
<label for="maxlong"> MaxLong: </label>
<input type="text" name="MaxLong" value="1"><br>
<button type="submit" class="btn btn-success"> Submit <span class="fa fa-arrow-right"></span></button>
</form>
<script>
$(document).ready(function() {
$("#form")
.submit(function(event) {
var formData = {
'minLat' : $('input[name=MinLat]').val(),
'maxLat' : $('input[name=MaxLat]').val(),
'minLong' : $('input[name=MinLong]').val(),
'maxLong' : $('input[name=MaxLong]').val()
};
$.ajax({
url: $form.attr('action'),
data: formData,
cache: false,
dataType: 'json',
processData: false,
type: 'POST',
}).done(function(data) {
console.log(data);
});
event.preventDefault();
});
});
</script>
:
İşte benim istemci tarafı kod
var express = require("express");
var path = require("path");
var bodyParser = require("body-parser");
var app = express();
app.use(express.static(__dirname + "/public"));
app.use(bodyParser.json());
// Initialize the app.
var server = app.listen(process.env.PORT || 8080, function() {
var port = server.address().port;
console.log("App now running on port", port);
});
app.post("/geodata", function(req, res) {
console.log(req.body);
res.send("hi");
});
Ben bitiş noktasına bu formu veri göndermek isteyen/geodata ve bu verileri, istemci tarafına bir sonuç göndermek için kullanın. Her şeyden önce, gönderdiğimde terminalimde boş bir {} (sunucu tarafı request.body) var. Bu istekte form değerlerini bekliyordum, ama onları almadım. Form değerlerimin gönderilmesini nasıl sağlayabilirim?
İkinci olarak, res.send ("hi"), ilk sayfamı yeni bir sayfaya yönlendirir ve orada "merhaba" yazdı. Bir ajax çağrısı yaptığım için, yanıt sadece günlüğe kaydedilmemeli ve web sayfası ilk sayfada kalmamalı mı?
Eğer katman herhangi bir tür içinde kullanıyor musunuz form verilerini temsil eden bir nesne döndürür geri '/ coğrafi veri' rota ve req.body gönderilen tepki ne sayfanız olacaktır zirveye tıkladıktan sonra Vücudu ayrıştırmak için ifade mi? – Markasoftware
@Markasoftware: Kodumun kalanını yukarıdaki sunucu tarafına dahil ettim. Vücut ayrıştırıcısı kullanıyorum. – newenthusiast
Mümkünse 'Formidable' Kullanmaya Çalışıyor - Form verilerinin, özellikle dosya yüklemelerinin ayrıştırılması için bir node.js modülü. (https://www.npmjs.com/package/formidable) – CodingDefined