2016-05-02 11 views
1

ajax経由でノードjsサーバーにフォームを送信していますが、エラーが表示される場合はエラーを表示する代わりに、新しいページ全体にリダイレクトされます。エラー。私はres.send、res.json、res.writheHeadを()を使用している...しかし、私は常に新しいページNode.jsのajax投稿からのエラーメッセージの返信方法

  $.ajax({ 
       url: $this.attr('/api/adduser'), 
       type: $this.attr('POST'), 
       data: $this.serialize(), 
       dataType: 'json', // JSON 
       success: function(json) { 
        alert('Erreur : '+ json.reponse); 
        } 
       }) 
      event.preventDefault() 

にリダイレクトしていますし、サーバー側で私が持っている:

sql.query("INSERT into internes(email,nom,prenom,password,privilege,datenaissance,gender,details,user_Add_Mail)"+ 
      " VALUES(lower($1),lower($2),lower($3),lower($4),lower($5),$6,$7,lower($8),lower($9))", 
      req.body.email,req.body.nom,req.body.prenom,req.body.pass1,priv,req.body.datenaissance,parseInt('0'),req.body.details,req.body.passAdmin) 
      .then(function(result){ 
       res.redirect('/api/users'); 
      }) 
      .catch(function(erreur){ 
       res.json(400, {'success': erreur}) 
      }) 
+0

'res.status(400).json({ERR: "カスタム"})これを修正するには、一つの – vkstack

答えて

0

それはあなたが得ているエラーがあなたのSQLの約束からの成功した応答として識別されているようです。

success: function (json) { 
    alert(json); 
}, 
error: function (jqXHR, exception) { 
    var msg = ''; 
    if (jqXHR.status === 0) { 
     msg = 'Not connect.\n Verify Network.'; 
    } else if (jqXHR.status == 404) { 
     msg = 'Requested page not found. [404]'; 
    } else if (jqXHR.status == 500) { 
     msg = 'Internal Server Error [500].'; 
    } else if (exception === 'parsererror') { 
     msg = 'Requested JSON parse failed.'; 
    } else if (exception === 'timeout') { 
     msg = 'Time out error.'; 
    } else if (exception === 'abort') { 
     msg = 'Ajax request aborted.'; 
    } else { 
     msg = 'Uncaught Error.\n' + jqXHR.responseText; 
    } 
    alert(msg); 
} 

Doc

0

sql.query("INSERT into internes(email,nom,prenom,password,privilege,datenaissance,gender,details,user_Add_Mail)"+ 
     " VALUES(lower($1),lower($2),lower($3),lower($4),lower($5),$6,$7,lower($8),lower($9))", 
     req.body.email,req.body.nom,req.body.prenom,req.body.pass1,priv,req.body.datenaissance,parseInt('0'),req.body.details,req.body.passAdmin) 
     .then(function(result){ 
      // look into your result to see if you have what you asked for 
      if(result.error) { 
       res.status(500).send({error: 'you have an error'}); 
      } 
      res.redirect('/api/users'); 
     }) 
     .catch(function(erreur){ 
      res.json(400, {'success': erreur}) 
     }) 

のようなオプションがAJAXエラーを使用することで何かを; `
関連する問題