默認發送ajax請求都是異動,以下設置爲同步(async:false),此時是要等到ajax的回調函數success執行完畢後,才執行這個ajax之後的代碼(即alert(333);return;).如此時需要根據data==1而結束整個調用這個ajax的方法,就不能在success判斷return了,此時的return僅僅只是
結束這個ajax請求而不是調用這個ajax的方法,後面代碼(即alert(333);return;)還是會執行下去。若想根據ajax的data判斷是否結束方法,
則需要在ajax外面判斷,先把ajax請求後data賦值給外部變量message,再用message==1判斷是否結束此方法。
PS:一定要設置成同步,否則message有可能爲undefined就無法判斷了
(同步一定會等到回調函數success執行完後再執行ajax後續代碼,異步的不要說回調函數success執行完,就是有可能ajax請求都沒有發在它之後代碼就執行了!)
var message;
$.ajax({
type: "GET",
url: "test.json",
async:false,
data: {username:$("#username").val(), content:$("#content").val()},
dataType: "json",
success: function(data){
//if(data==1) return;
message = data;
}
});
if(message==1) return;
alert(333);
return;