我试图在我的ajax请求的结果上添加一些变量,然后再转到.then()回调。但是我的代码总是返回ajax对.then()语句的响应结果。

   $.ajax({
            url: "api.php",  //this returning [{"sid":"454545454554"}]
            success:function(data) {
                a = data.push({"additional_var" : "one"});
                return a;
            }
        })
        .then(function(response1){
            console.log(response1);
        })


response1上面的代码上,总是从我的api.php([{"sid":"454545454554"}])返回响应。我希望response1在{"additional_var" : "one"}。有什么办法吗?

最佳答案

可以将所有内容都放在.then中:

    .then(function(response1){
        response1.push({"additional_var" : "one"});
        console.log(response1);
    })


或将另一个.then链接到开头(除非代码的其他部分分别使用Promise,否则这不是一个好主意):

const prom = $.ajax({
  url: "api.php"
})
  .then(function(response1){
    response1.push({"additional_var" : "one"});
    console.log(response1);
  })

prom.then(console.log);

08-04 11:49