2017-07-19 117 views
1

它除了與節點js和AJAX POST的錯誤,節點請求無法檢查表單數據是否正確處理,總是會下降到錯誤函數,任何解決方案檢查下面AJAX節點JS代碼節點js ajax發佈請求

$("#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

你收到了什麼錯誤信息? –

+0

請提供更詳細的主題/標題。 – buhtz

+0

我不知道,但我想你需要通過本地主機和端口的整個URL。 –

回答

1

您需要添加(「/」)根爲API來Ajax請求。員額有(/ process_add)暗示不根爲API,所以如果指數是根(「指數/ process_add)

+0

因此,如果路由器安裝使用'app.use('/ index',router);',那麼'url'將會是'/ index/process_add'而不是'/ process_add'。 – skirtle

+0

正確的沒有,它正在尋找app.use('/ process_add') –

+0

我使用上下文中的根目錄路由文件夾。請記住,如果爲應用程序路由分開JS文件,您的「根」頻道將發生變化 –

1

您的AJAX請求'/ process_add'將指向您的URL的根目錄。例如,abc.com是您的域,此處的端點將是'abc.com/process_add'。 確保您的路由器存在的 '/' 在app.Something根參考這樣

app.js

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

路線/ 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(); 
      }); 
     }); 
    }); 

編碼快樂!