2017-04-05 93 views
0

我試圖從HTML表格用JSON文件發送數據,並將其傳遞給服務器節點,但是在服務器上它被複制不止一次當我通過JSON它可以讀取它,因爲它通過了所有數據到服務器,但它運行了兩次以上,我不知道是否會有一種方法只運行一次。發送使用Ajax POST方法與節點的js JSON數據?

客戶端:

function enviarDatos(listJson){ 
    $.ajax({ 
    type: "POST", 
    url: "http://localhost:8080/enviando_datos.json", 
    data: listJson, 
    success: function(data) { 
     //show content 
     alert('Success!'); 
    }, 
    error: function(jqXHR, textStatus, err) { 
     //show error message 
     //alert('text status '+textStatus+', err '+err); 
    } 
    }); 
} 

服務器端:

app.post('/enviando_datos.json', function(req, res){ 
    //sacar eprocentaje de consumo 
    //sacar valor de fondo fijo 
    var fecha_actual = new Date(); 
    var dd_actual = fecha_actual.getDate(); 
    var mm_actual = fecha_actual.getMonth()+1; //hoy es 0! 
    var yyyy_actual = fecha_actual.getFullYear(); 
    fecha_actual = yyyy_actual+"-"+ mm_actual+'-'+dd_actual; 
    var estado = 0; 
    if(req.body.tipo == 'VALE DE PAGO'){ 
     var valor_base = req.body.valor; 
    }else{ 
     var valor_base = req.body.valor - (req.body.valor*0.14); 
    } 
    db_handler.obtener_fondo_categoria(req.body.categoria,function(queryResMontoMax){ 
     db_handler.insertar_proveedores_ruc_cedula(req.body.proveedor,req.body.ruccedula,function(queryRes1){ 
      db_handler.insertar_datos_caja_chica_con_factura(
       req.carPoolSession.username, 
       fecha_actual, 
       req.body.valortotal, 
       queryResMontoMax[0].MONTO_MAX, 
       '15%', 
       req.body.empresa, 
       req.body.categoria, 
       req.body.proveedor, 
       req.body.ruccedula, 
       req.body.entregado, 
       req.body.cargado, 
       req.body.fecha, 
       req.body.valor, 
       req.body.tipo, 
       req.body.estabfact, 
       req.body.ptoemifact, 
       req.body.numsecfact, 
       req.body.numautofact, 
       '14%', 
       valor_base, 
       req.body.estabret, 
       req.body.numemiret, 
       req.body.numsecret, 
       req.body.numautoret, 
       estado, 
       function(queryRes2){ 
        console.log('datos ingresados con exito'); 
       }); 
     }); 
    }); 
}); 
+0

在客戶你是如何調用該方法enviarDatos? 你能分享你的客戶端JS嗎? –

回答

0

我不知道這個路由器會工作......我似乎從來沒有一個路由器,以.json擴展。

如果我錯了,請讓我知道:)

但是... 您沒有在您的請求序列化的數據,現在只是一個JavaScript對象,直到你把它序列化JSON作爲。 嘗試把你的數據具體的數據類型和內容類型。

 $.ajax({ 
     type: "POST", 
     url: "http://localhost:8080/enviando_datos.json", 
     dataType: "json", 
     contentType: 'application/json', //see that 
     data: listJson 
     }).done(function (data) { 
      alert("ajax callback response: "+JSON.stringify(data)); 
     }); 

呼叫JSON.stringify以序列化爲JSON,然後body parser有一些解析。

+0

用你我得到這個錯誤,'語法錯誤:意外的令牌F',我不知道是什麼令牌是,在客戶端來此錯誤:'400(錯誤請求).' –

+0

驗證您的JSON bdfore發送數據,如果一切正常,嘗試添加JSON.stringify(listJson) –

相關問題