0
我試圖在用戶使用beforeSend
事件和回調(我不想使用同步ajax
)支付ajax
函數之前檢查互聯網連接。我相信我在這裏丟失了一些東西,作爲ping不斷回調未定義值的函數。如何異步處理另一個ajax的beforeSend事件中的ajax回調?
我的回調函數
function checkNetConnection(u, s, e) {
var c=0
$.ajax({
success: s(),
error: e,
url: u,
type: 'Get',
});
}
所以我創建了一個片段顯示兩個ajax
電話,其中之一是隻是一個測試,並執行回調的第二個。我在這裏做錯了什麼,所以回撥在beforeSend
事件中不會返回true?
function testcall() {
$.ajax({
beforeSend: function(jqXHR) {},
url: "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js",
type: "Get",
success: function(res) {
console.log('jquery.min.js call ok!')
},
error: function(jqXHR, textStatus, errorThrown) {
console.log("jquery.min.js call Failed");
}
});
};
function checkNetConnection(u, s, e) {
$.ajax({
success: s,
error: e,
url: u,
type: 'Get',
});
}
function callthis() {
$.ajax({
beforeSend: function(jqXHR) {
if (checkNetConnection("https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js",
function() {
return true;
},
function() {
return false;
}
)) {
console.log("jquery.min.js call ok");
} else {
console.log("jquery.min.js call Failed");
jqXHR.abort();
};
},
url: "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js",
type: "Get",
success: function(res) {
console.log('jquery.min.js call ok!')
},
error: function(jqXHR, textStatus, errorThrown) {
console.log("jquery.min.js call Failed");
}
});
};
$("#bt1").click(function() {
testcall();
});
$("#bt2").click(function() {
callthis();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="bt1" type="button" value="Test call (Connection Not tested)" /> <br/> <br/>
<input id="bt2" type="button" value="Function call (Connection tested) " />