在ajax中使用函数外部的变量

using a variable outside a function in ajax

本文关键字:外部 变量 函数 ajax      更新时间:2023-09-26

如何在函数外的函数中使用变量?log(响应)显示从php中获取了内容。警报(lng)显示未定义。为什么?这个脚本的问题是什么?我已经用了一段时间了

下面是脚本。
    var lat;
    var lng ;
    $.ajax({
            type: 'GET',
            url: 'getlocation.php',
            data: 'param=no' ,
            dataType: 'JSON',
            success: function (response) {
                console.log(response);
                lat = response.latitude;
                lng = response.latitude;
            },
            error: function (response){
                alert (response);
            }
        });
    alert( lng);

因为在代码运行到alert(lng)行时没有设置变量lng

Ajax调用是异步的。这意味着,JS引擎进入流:

  1. 发出http请求($.ajax...)

(此时,由于网络操作较慢,所以JS引擎选择继续执行以下行。它会在响应完成后返回。)

  • 进入alert(lng)行。此时,它仍然是undefined
  • 请求响应成功/错误,则运行相应的回调函数function(response)...。回调函数中的Alert会得到你想要的。