2011-01-25 28 views
2

これは私の最初のAjaxリクエストです。私はクライアントのブラウザを待たせたくないので、私のコードは成功を待っていません。他のページにすぐにリダイレクトされます。しかし、それは動作していません。リダイレクト時にajaxリクエストをキャンセルしないようにするにはどうすればよいですか?

$.ajax({ 
      data: '{}', 
      url: "Service.asmx/GetNextID", 
      success: function(msg1) { 
       $.ajax({ 
        type: "POST", cache: false, contentType: "application/json; charset=utf-8", dataType: "json", timeout: 5000, 
        url: "Service.asmx/SaveData", 
        dataFilter: function(data) {var msg = (typeof (JSON) !== 'undefined' && typeof (JSON.parse) === 'function') ? JSON.parse(data) : eval('(' + data + ')');return (msg.hasOwnProperty('d')) ? msg.d : msg;}, 
        data: "{ID:'" + $get('<%=txt1.ClientID %>').value + "',Date:'<%=cutoffdate%>',data:'" + $("#<%=txt2.ClientID %>").val() + "'}", 
        error: function(xhr, desc, exception){ 
         alert("Failed!"); 
       } 
       }); 
       window.location = "../Result.aspx?ID=" + msg1.ID; 
      }, 
      error: function(xhr, desc, exception) { 
      } 
     }); 

したがって、成功を待っておらず、別のページにリダイレクトされるため、次の "SavaData"呼び出しがキャンセルされます。

回避策はありますか?

+1

私には正しいことはありません。 ajax呼び出しは、レスポンスが200または302の応答かどうかを知るまで待つ必要があります。成功を待つことなくどのようにリダイレクトできますか? –

答えて

1

リダイレクトするまで数秒待つ?

+0

そのすべてについての性能。クライアントは待っていません。 – User13839404

+0

リダイレクトする前に数ミリ秒待ちますか? – piyush

+0

数ミリ秒を与えることで動作すると思いますか?あなたはそれを説明できますか? – User13839404

関連する問題