javascript – 如何从Node.js中的ajax post返回成功

前端之家收集整理的这篇文章主要介绍了javascript – 如何从Node.js中的ajax post返回成功前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这样的功能
  1. exports.saveAction = function (req,res) {
  2. var conn = MysqL.createConnection({
  3. host : nconf.get("database:host"),//port: 3306,user : nconf.get("database:username"),password : nconf.get("database:password"),database : nconf.get("database:database"),multipleStatements: true,//ssl: 'Amazon RDS'
  4. });
  5. var action = req.body;
  6. conn.query('UPDATE actions SET ? WHERE Id = ?',[action,action.Id],function (err,result) {
  7. conn.end();
  8. if (err) throw err;
  9. res.writeHead(200,{ "Content-Type": "application/json" });
  10. res.end("Updated Successfully");
  11. });
  12. };

我返回“200”,但它总是返回错误子句如下所示:

  1. $.ajax({
  2. url: "/api/action/SaveAction",type: "PUT",data: ko.toJSON(self.stripDownObj()),datatype: "json",contentType: "application/json; charset=utf-8",success: function (result) {
  3. console.log(result);
  4. if(result.status == 200){
  5. self.isEditMode(!self.isEditMode());
  6. }
  7. },error: function(result){
  8. console.log(result);
  9. }
  10. });

注意:SQL查询是成功的,并且保存数据.

解决方法

当您期待JSON时返回JSON
  1. res.end('{"success" : "Updated Successfully","status" : 200}');

接着

  1. $.ajax({
  2. ....
  3. datatype: "json",// expecting JSON to be returned
  4.  
  5. success: function (result) {
  6. console.log(result);
  7. if(result.status == 200){
  8. self.isEditMode(!self.isEditMode());
  9. }
  10. },error: function(result){
  11. console.log(result);
  12. }
  13. });

在Node中,您可以随时使用JSON.stringify获取有效的JSON

  1. var response = {
  2. status : 200,success : 'Updated Successfully'
  3. }
  4.  
  5. res.end(JSON.stringify(response));

Express也支持

  1. res.json({success : "Updated Successfully",status : 200});

它会将对象转换为JSON,并自动传递适当的标题.

猜你在找的Ajax相关文章