Php 如何从AJAX请求返回结果

Php 如何从AJAX请求返回结果,php,javascript,jquery,ajax,Php,Javascript,Jquery,Ajax,今天,我创建了一个名为sendData的Javascript函数 这是为了方便起见,而不是编写一个完整的ajax语句 无论如何,我知道它是异步的,我想知道如何等待并得到返回的值,而不是什么都不返回。这是我的 function returnData(data) { alert(data + " ddd"); return data; } function sendData(data,file) { var a = "" $.ajax({ ur

今天,我创建了一个名为sendData的Javascript函数

这是为了方便起见,而不是编写一个完整的ajax语句

无论如何,我知道它是异步的,我想知道如何等待并得到返回的值,而不是什么都不返回。这是我的

   function returnData(data)
{
    alert(data + " ddd");
    return data;
}

function sendData(data,file) {
    var a = ""
    $.ajax({
        url: file,
        data: data,
        type: "POST",
        success: function(newData)
        {
            a = newData;

        }
    })
    returnData(a);
}
我原以为这样行得通,但事实并非如此。有人知道我怎样才能等它回来吗

最终代码 如果设置选项async:false,它将等待回调返回

$.ajax({
    ...
    async:false,
    ...
})
如果设置选项async:false,它将等待回调返回

$.ajax({
    ...
    async:false,
    ...
})
您还可以执行以下操作:

function sendData(data,file) {
    var a = ""
    $.ajax({
        url: file,
        data: data,
        type: "POST",
        success: function(newData)
        {
            returnData(newData);

        }
    })
}
这是使用回调的典型方式。success函数是成功后应该执行的代码

您可能还想查看承诺:

您还可以:

function sendData(data,file) {
    var a = ""
    $.ajax({
        url: file,
        data: data,
        type: "POST",
        success: function(newData)
        {
            returnData(newData);

        }
    })
}
这是使用回调的典型方式。success函数是成功后应该执行的代码


您可能还想查看承诺:

如果您想保持异步,请在成功过程中调用您的函数,即:


这样,直到有东西要发送给函数,才会调用函数。否则,将其设置为在继续使用参数中的async:false之前等待响应。

如果要保持异步,请在success中调用函数,即:

这样,直到有东西要发送给函数,才会调用函数。否则,将其设置为在继续使用参数中的async:false之前等待响应。

是否可以使用

         function sendData(data,file) {
           var a = ""
           $.ajax({
              url: file,
              data: data,
              type: "POST",
              success: function (newData) {
                 a = newData;
                 returnData(a);

              }
           })
           return;
        }
我可以用吗

         function sendData(data,file) {
           var a = ""
           $.ajax({
              url: file,
              data: data,
              type: "POST",
              success: function (newData) {
                 a = newData;
                 returnData(a);

              }
           })
           return;
        }


很好用!非常感谢!请记住,它将延迟sendData之后发生的所有javascript代码的执行。。。在本例中,直到AJAX SJAX调用完成为止。这有一个缺点,即在执行同步调用时锁定浏览器,这通常是一个很大的禁忌,应该像瘟疫一样避免。您只需等待调用完成,然后再尝试使用返回的数据,效果会更好。工作非常完美!非常感谢!请记住,它将延迟sendData之后发生的所有javascript代码的执行。。。在本例中,直到AJAX SJAX调用完成为止。这有一个缺点,即在执行同步调用时锁定浏览器,这通常是一个很大的禁忌,应该像瘟疫一样避免。在尝试使用返回的数据之前,您只需等待调用完成,这样做会更好。是的,上述操作不起作用。是的,上述操作不起作用。这不起作用。数据返回为未定义。啊,您一定希望sendData返回,这就是它返回未定义的原因。如果希望该函数有一个返回,则需要在设置中设置async:false,以便整个函数等待返回。否则,您可以调用returnData函数,它可以继续调用sendDataYea时停止的地方,我明白了。谢谢:没问题。^^很乐意帮忙,这不管用。数据返回为未定义。啊,您一定希望sendData返回,这就是它返回未定义的原因。如果希望该函数有一个返回,则需要在设置中设置async:false,以便整个函数等待返回。否则,您可以调用returnData函数,它可以继续调用sendDataYea时停止的地方,我明白了。谢谢:没问题。^^很乐意帮忙。我的错,我尝试过谷歌搜索,但什么也没发现。没有理由感到不好,重复的是网站的一部分。如果它被标记为一个,它将帮助未来的搜索者找到另一个非常详细的问题/答案组合。^^关于那个复制品的回答很好,尽管@FelixKling=]我的错,我尝试过谷歌搜索,但什么也没发现。没有理由感到不好,复制品是网站的一部分。如果它被标记为一个,它将帮助未来的搜索者找到另一个非常详细的问题/答案组合。^^尽管@FelixKling=]在重复问题上回答得很好