簡體   English   中英

更改HTML位置jQuery Ajax,然后在iOS中發送

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM