[英]Change HTML location jQuery ajax beforesend in ios
我有下面的代碼。 因為如果用戶的回答不同意,我必須將郵件發送給某些人。 而且發送郵件要花費大量時間,由於run_waitMe(waitMe.min.js),用戶無法快速進入“感謝頁面”(QNR05.html)。 因此,我將ajax成功更改為優先於此問題。
但!!! 這在PC和android手機上效果很好。 但是它不會在ios設備上發送任何內容到updateFollowup.do,只需更改頁面以感謝您的頁面(QNR05.html)。 我有一個解決方案是更改在后台過程中批量發送郵件。 但是它將改變很多代碼。 所以我想知道是否有任何解決方案可以在ios設備中回調之前更改頁面並確實發送數據。任何解決方案將不勝感激。 非常感謝。
附言:我測試的全部內容是chrome。 希望解決方案能很好地解決問題。 謝謝!
function postData(followup) {
run_waitMe($('#bodyLock'),'img', '','60','vertical','30px');
if ("N" == haveQ2) {
var cbxVehicle1 = new Array();
$('input:checkbox:checked[name="answer1Val"]').each(function(i) { cbxVehicle1[i] = this.value; });
$.ajax({
type: "POST",
url: "QNR04/updateFollowup.do",
data : {
"masterId" : $('#masterId').val(),
"answer1" : $("#qa1").val(),
"question1" : $('#service1').val(),
"answerDesc1" : cbxVehicle1.toString(),
"followUp" : followup,
"contactPhone" : $("#contactPhone").val(),
"serviceName":"客戶回報問卷-送出"
},
beforeSend: function(msg) {
location.href = "QNR05.html";
}
});
} else {
var cbxVehicle1 = new Array();
$('input:checkbox:checked[name="answer2Val"]').each(function(i) { cbxVehicle1[i] = this.value; });
var cbxVehicle2 = new Array();
$('input:checkbox:checked[name="answer3Val"]').each(function(i) { cbxVehicle2[i] = this.value; });
$.ajax({
type: "POST",
url: "QNR04/updateFollowup.do",
data : {
"masterId" : $('#masterId').val(),
"answer1" : $("#qa1").val(),
"question1" : $('#service2').val(),
"answerDesc1" : cbxVehicle1.toString(),
"answer2" : $("#qa2").val(),
"question2" : $('#service3').val(),
"answerDesc2" : cbxVehicle2.toString(),
"followUp" : followup,
"contactPhone" : $("#contactPhone").val(),
"serviceName":"客戶回報問卷-送出"
},
beforeSend: function(msg) {
location.href = "QNR05.html";
}
});
}
}
由於您不想“等待”成功回調...
然后在beforeSend:
,使用超時,因此Ajax 應該有時間發送...至少。
beforeSend: function(){
setTimeout(function(){
location.href = "QNR05.html";
},100);
}
100毫秒應該足夠了……用戶不會注意到。
如果失敗,請嘗試稍長的延遲。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.