jquery 第二次向服务器发出请求后未执行代码

s4chpxco  于 2022-12-12  发布在  jQuery
关注(0)|答案(1)|浏览(112)

我使用$. post向服务器发出两个请求。在执行第一个请求后,我调用第二个请求,传递从第一个请求接收到的信息。问题是在第二个请求完成后,代码不工作,请求返回数据,我检查了。
对服务器的请求。

$("#start_search").click(function () {
        $.post("/getLinks", {
                searchText: $('#searchText').val(),
                picSize: $('input[name="pic"]:checked').val(),
                typeFile: $('input[name="file"]:checked').val(),
                clicks: $('#numberOfPics').val()
        },
        function (data) {
            //Work fine
            console.log('Done!')
            let json = JSON.parse(JSON.stringify(data));
            for (let arr of json[0].arrs){
                for (let path of arr[0]){
                    $.post("/setImg", {
                        path: path
                    }),
                    function (res){
                        //Dont work
                        console.log(JSON.parse(JSON.stringify(res)));
                    }
                }
            }
        });
    });

服务器端的第二个请求。

app.post("/setImg",  (req, res) => {
    let filepath = req.body.path;
    BD.start(filepath, function (err, result) {
        if (err) console.log(err)
        res.json([{
            result: result
        }])
    })
})

BD.start.

function SetToImgDB (filepath, callback){
    connection.query(`INSERT INTO imgs (filepath) VALUES ('${filepath}')`, (err, results) => {
        if (err) return callback(err);
        createObject(results.insertId, function (err, result) {
            if (err) return callback(err)
            return callback(null, result);
        });
    })
}

function createObject (id, callback) {
    connection.query(`insert into objects (date, img_src, origin, preview, rating) values ('${(new Date()).toISOString().slice(0,19).replace('T', ' ')}', '${id}', '0', '${id}', '0')`, (err, results) => {
        if (err) return callback(err);
        return callback(null, results.insertId);
    });
}

function start (filepath, callback){
    SetToImgDB(filepath, function (err, result) {
        if (err) return callback(err)
        return callback(null, result)
    });
}

module.exports = {
    start,
}

我试着使用$. AJAX ,但是这个方法根本不起作用。

umuewwlo

umuewwlo1#

右括号放错了位置:

$.post("/setImg", {
  path: path
}),
function (res){
  //Dont work
  console.log(JSON.parse(JSON.stringify(res)));
}

应改为

$.post("/setImg", {
  path: path
},
function (res){
  //Dont work
  console.log(JSON.parse(JSON.stringify(res)));
})

相关问题