jQuery $.get/fail 异步请求返回值 undefined 及同步解决方案

作者:小括号时间:2026-10-31 09:09:08浏览:111

本文详解jQuery $.get异步请求导致返回值undefined的问题。通过$.post示例说明异步执行顺序,并提供两种同步解决方案:修改ajaxSettings.async为false或使用$.ajax设置async:false,确保数据获取后再返回结果。

当$.get请求执行失败时,可以通过调用fail方法来处理错误情况。

$.get(
          "url",
           {
               data: value
           },         
           function (data, status, jqxhr) {
               alert('保存成功');
           }).fail(function () {  //当$.get执行过程失败后,调用的方法,相当于ajax的error方法
               alert('保存失败');
           });

在使用jQuery的$.post或$.get进行异步请求时,经常遇到无法正确获取返回值的问题。

在开发项目过程中,编写了一个执行数据库查询并返回数据的函数。

function getpname(PARENT_ID){
    var pname='';
    $.post("/KEJITEMP/DealWithBT",{
        flag:"getpname",
        ID:PARENT_ID,
    },function(data){
        data=JSON.parse(data);
        pname = data.CNNAME;
        });
    return pname;
}

调用该函数时,获取到的pname返回值始终为undefined。分析原因发现,由于$.post发送的是异步请求,导致在pname被赋值之前函数就已经返回。通过alert验证确认,对pname赋值的操作确实发生在return语句之后。

上述写法显然存在逻辑错误,需要将请求发送方式修改为同步模式。

var pname='';//设置全局变量
    $.ajaxSettings.async=false;  //插入这个代码用ajax的“同步方式”调用一般处理程序
    $.post("/KEJITEMP/DealWithBT",{
//另一种写法时:
$.ajax({
        url: "",
        async: false,//改为同步方式
        type: "POST",

到此这篇关于当$.get返回失败后调用fail方法的文章就介绍到这了,更多相关$.get返回失败调用fail方法内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

作者最新文章