2017-07-19 5 views
1

Es außer einem Fehler mit Knoten js und AJAX POST, wird die Knoten Anforderung kann nicht überprüfen, ob Formulardaten korrekt gehandhabt werden, immer Drop-Funktion auf Fehler, jede Lösung unterhalb AJAX NODE JS-Code zu überprüfenKnoten js Ajax-Post-Anforderung

$("#submit_btn").click(function() { 
    $.ajax({ 
     url: '/process_add', 
     type: 'POST', 
     dataType: "json", 
     data: $('#process_form').serializeArray(), 
     success:function(data) { 
      alert('done'); 
     }, 
     error: function(errorThrown,data) { 
      alert('Error'); 
     } 
    }); 
}); 


router.post('/process_add', function(req, res, next) { 

    var item = { 
     name: req.body.name, 
     content:req.body.content 
    }; 

    mongo.connect(url, function(err, db) { 
     assert.equal(null, err); 
     db.collection('data_collection').insertOne(item, function(err, result) { 
      assert.equal(null, err); 
      console.log('Process added'); 
      db.close(); 
     }); 
    }); 
}); 
+0

Welche Fehlermeldung erhalten Sie? –

+0

Bitte geben Sie einen detaillierteren Betreff/Titel an. – buhtz

+0

Ich bin mir nicht sicher, aber ich denke, dass Sie die ganze URL mit localhost und Port übergeben müssen. –

Antwort

1

Sie müssen die ('/') Wurzel für die api zu Ajax Anfrage hinzufügen .post hat (/ process_add) deutet Wurzel nicht für diese api also, wenn Index root ('index/process_add) ist

+0

Also wenn der Router eingehängt ist mit 'app.use ('/ index', router);' zum Beispiel wird dann 'url''/index/process_add' und nicht '/ process_add'. – skirtle

+0

Korrigieren Sie, ohne dass es nach app.use ('/ process_add') sucht. –

+0

Ich benutze root im Kontext zum Ordner routes. Denken Sie daran, wenn Sie JS-Dateien für Ihre App trennen, wird sich Ihr "root" -Kanal ändern –

1

Ihre AJAX-Anfrage '/ process_add' zeigt auf den Stamm Ihrer URL. Sagen Sie beispielsweise abc.com ist Ihre Domain, der Endpunkt wäre 'abc.com/process_add'. Stellen Sie Ihren Router in app.Something wie diese

im Stamm Referenz von '/' existiert app.js

var index = require('./routes/index');  
app.use('/',index); 

Routen/index.js

router.post('/process_add', function(req, res, next) { 

     var item = { 
      name: req.body.name, 
      content:req.body.content 
     }; 

     mongo.connect(url, function(err, db) { 
      assert.equal(null, err); 
      db.collection('data_collection').insertOne(item, function(err, result) { 
       assert.equal(null, err); 
       console.log('Process added'); 
       db.close(); 
      }); 
     }); 
    }); 

Glücklich Coding!