繁体   English   中英

从 ajaxSuccess 事件中取消 ajax 成功函数

[英]cancel ajax success function from inside ajaxSuccess event

我有一个全局ajaxSuccess事件和一个附加到 ajax 请求的本地success函数。

如果响应中的全局 find status = false ,我想取消success功能。

像这样

$(document).ajaxSuccess(function (event, xhr) {
    let result = xhr.responseJSON;
    if (result.status === false) {
        //here the ajax should be stopped, I don't want to call the local functio
    }
}
$.ajax(url, {
    'method': method,
    'success': function () {
        //success function to call if the global ajaxSuccess is ok
    }
})

这可以实现吗?

这将使您深入了解您可能正在寻找的内容。 您将需要在 json 中返回后端数据。

为什么不将状态设置为某些值例如。 false= 0true = 1 然后,您可以根据从 PHP 后端的此示例中的后端返回的值打印成功或失败。

这里发送一个值为test_ok的 post 变量。 如果值为test_ok则警报成功,否则警报失败并停止进一步操作

<script>

$(document).ready(function(){
var test ='test_ok';
var datasend = "test="+ test;

        $.ajax({

            type:'POST',
            url:'test.php',
            data:datasend,
                        crossDomain: true,
            cache:false,
            success:function(result){

                $('#result').fadeIn('slow').prepend(msg);

                               if (result.status ==0) {
  alert('failed');
return false;
    }



                               if (result.status == 1) {
       alert('success');
    }


            }

        });

});


</script>

测试文件

<?php

$test = $_POST['test'];
$output = array();


if($test == "test_ok"){

$output[] = array(
"status" => '1'
);

}
 if($test != "test_ok"){
$output[] = array(
"status" => '0'
);

}


echo json_encode($output);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM