2017-04-05 119 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) –

相关问题