Javascript 从$.get方法返回数据

Javascript 从$.get方法返回数据,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我正在尝试对此进行排序,我发出了一个get类型的ajax请求,页面将返回许多响应,OK就是其中之一,页面是否返回OK,然后我需要继续表单提交,否则我需要停止表单提交,但我无法访问函数外部的数据,它仅在回退功能中可用,这是由于异步行为吗?有人能帮助我摆脱这种情况吗 $.get('ajax.html',function(data){ //some code here }); if(data == 'ok'){return true; } else {return false;} $.get触发

我正在尝试对此进行排序,我发出了一个get类型的ajax请求,页面将返回许多响应,OK就是其中之一,页面是否返回OK,然后我需要继续表单提交,否则我需要停止表单提交,但我无法访问函数外部的数据,它仅在回退功能中可用,这是由于异步行为吗?有人能帮助我摆脱这种情况吗

 $.get('ajax.html',function(data){
//some code here
});

if(data == 'ok'){return true; } else {return false;}

$.get
触发异步请求,程序继续执行。因此,在您的情况下,
数据
仅在ajax调用完成后,并且仅在回调函数中可用。您需要对回调函数中的
数据执行任何操作

您需要重新安排代码以执行以下操作:

$.get('ajax.html', function (data) {
   if(data === 'OK') {
      // do what you need to do in this case
   }
});

// at this point there's no data

不,您正在访问的数据不是可用的变量。 把它分配给另一个变量怎么样

var resp = "";
 get('ajax.html', function (data) {
   resp = data;
});

if(resp == "OK") {alert(1);}
或者,您可以使用asyn false

$.ajax({
    url: url,
    type: "GET",
    async: false,
    data: data,
    success: function(ret) {
        //alert(ret);
        resp = data;
    }
});
alert(resp);

干杯

如果不能帮助保持表单提交,则可能会重复从回退内部返回。您不能按照自己的想法执行此操作。调用的函数返回的$.get inside不可用,这是异步调用的本质。您要做的是防止表单自动提交,并从回调中手动提交表单。您无法真正访问ajax之外的数据。如果要访问数据,必须将其分配到ajax调用之外的变量中。谢谢你的否决票!