it-source

Node.js의 ajax post에서 성공을 반환하는 방법

criticalcode 2023. 10. 3. 09:53
반응형

Node.js의 ajax post에서 성공을 반환하는 방법

다음과 같은 기능이 있습니다.

exports.saveAction = function (req, res) {
    var conn = mysql.createConnection({
        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'
    });
    var action = req.body;   
    conn.query('UPDATE actions SET ? WHERE Id = ?', 
                  [action, action.Id], function (err, result) {
        conn.end();
        if (err) throw err;
        res.writeHead(200, { "Content-Type": "application/json" });
        res.end("Updated Successfully");
    });
};

그리고 저는 "200"을 반환하지만, 그것은 항상 아래와 같은 오류 조항으로 반환됩니다.

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

참고: sql 쿼리가 성공적이며 데이터를 저장합니다.

JSON을 기대하고 있을 때 JSON을 돌려줌으로써.

res.end('{"success" : "Updated Successfully", "status" : 200}');

그리고 나서.

$.ajax({
     ....
    datatype: "json", // expecting JSON to be returned

    success: function (result) {
        console.log(result);
        if(result.status == 200){
            self.isEditMode(!self.isEditMode());
        }
    },
    error: function(result){
        console.log(result);
    }
});

노드에서는 항상 JSON.stringify를 사용하여 유효한 JSON을 얻을 수 있습니다.

var response = {
    status  : 200,
    success : 'Updated Successfully'
}

res.end(JSON.stringify(response));

Express도 지원합니다.

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

개체를 JSON으로 변환하고 사용자에게 적합한 헤더를 자동으로 전달합니다.

언급URL : https://stackoverflow.com/questions/22820734/how-to-return-success-from-ajax-post-in-node-js

반응형