js中 如何在$.post 函数外部 访问 $.post 中的 变量

JavaScript017

js中 如何在$.post 函数外部 访问 $.post 中的 变量,第1张

$.post默认使用的是异步执行,所以上面你那样做,很可能是alert不出来的,要修改这个问题,有两种方式,方式1(异步模式,推荐使用,这样不会页面卡死):

$.pots('/chcek/check.php', {}, function(data) {

    if (data == 1) {

        isscreen = true

    } else {

        isscreen = false

    }

    // 直接在这里alert

    alert(isscreen)

})

方式2(同步模式,不推荐,会卡死页面):

$.pots('/chcek/check.php', {

    async: false // false表示采用同步模式请求

}, function(data) {

    if (data == 1) {

        isscreen = true

    } else {

        isscreen = false

    }

})

alert(isscreen)

不要用for循环,而是在每次ajax的回调函数中再次发送下一个ajax请求,这样就能保证每次ajax都是在上一次ajax已完成的时候才发送的:

var i = 0

function Ajax(){

$.post(vPostPhpUrl, {

arrDaoRuDiZhi: JSON.stringify(vDaoRuDiZhi.slice(i, i + 1000)).replace(/\\r/g, "")

}, function (data, status) {

var arrFanHui = JSON.parse(data)

//这里根据需要对返回的数据进行处理

if(++i<vRow)Ajax() //继续下一个ajax请求

})

}

Ajax() //开始第一次ajax请求

首先要清楚ajax的格式,如下:

$.ajax({ 

    type:'post',

    url:'/testajax.php',

    dataType:'json',

    data:{uid:uid,rands:Math.random()},

    success: function(){

        alert('ajax return success')

}})

控制同步和异步的参数:

async

类型:Boolean

默认值: true。默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。

注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

使用方式:

$.ajax({ 

    type:'post',

    url:'/testajax.php',

    ......

    async:false,

    .....

    success: function(){

        alert('ajax return success')

}})