ajax如何返回值

Ajax. How can I return value?

本文关键字:返回值 ajax      更新时间:2023-10-16

我希望将结果设置为MVC控制器方法中的变量。

function someFunction(){ 
    var result;
    $.Ajax{    
        //??? 
    }
    return result; 
}

//与c++相比

int f() { //just! return result; }

附言:它不是异步的,它应该是同步函数调用,以便向函数体返回值。

设置控制器

public ActionResult Foo(){
return Content("Hello Anton");
}

设置ajax请求,记住将其设为async:false,默认情况下为true,以便返回值

function greeting(){
   var x= $.ajax({
            url:'/ControllerName/Foo',
            async:false,    
          });
   return x.responseText();
}

现在你可以调用类似的函数

var v = greeting();
alert(v); //if every thing goes well you will see "Hello Anton"
function someFunction(){
    var result;
    $.Ajax({
        url: '/some/ajax/call',
        success: function (data){
            result = data;
        }
    });
    return result;
}

请参阅有关成功的部分:http://api.jquery.com/jQuery.ajax/

您不能依赖于返回结果,因为正如Anwar所提到的,ajax是异步的。你要做的是定义一个回调函数,一旦结果返回,它就会对结果进行处理,在这种情况下是"成功"函数。

var result;
function someFunction(){
    var result;
    $.Ajax({
        url: '/some/ajax/call',
        success: function (data){
            result = data;
            // call a method that processes result
        }
    });
}

你可以这样做。。。result是在调用函数之前创建的-在AJAX调用成功返回数据后,success方法将data分配给result,您可以在结果更新后调用函数-以执行其他操作

Ajax调用异步工作,其工作方式如下:
$.ajax({
  url: '/{Your Controller Name}/{Action Name}',
  success: function(data) {
    alert('My returned data is:' + data);
  }
});

成功处理Ajax请求后,您可以处理返回的成功事件中的数据。

编辑:我已经试验了3nigma的答案,它按照安东的要求工作。