파일 다운로드에 대한 HTTP 요청이 JQuery Ajax 호출을 중지합니다.

ReturnToZero

문제:

내가 구축중인 사이트에는 두 개의 JQuery ajax 긴 폴링 호출이 지속적으로 보류 중입니다. 이제 파일 다운로드 기능을 추가하려고하므로 링크를 누르면 사용자에게 다른 이름으로 저장 상자가 표시됩니다. 이 파일 다운로드는 정상적으로 작동하며 문제는 링크를 누르면 두 개의 ajax 호출이 취소된다는 것입니다.

나는 ajax 호출을 취소하지 않거나 ajax 호출을 바로 설정할 수 있도록 노력하고 있습니다.

링크에 대한 코드는 다음과 같습니다.

HTML :

<a href="/test" id="testfile">Tasks</a>

JS :

$(document).on('click',"#testfile",function(event){
    event.preventDefault();
    var href=$(this).attr('href');
    window.location.href = href;
    updater();                               /* AJAX CALL #1 */
    notifier();                              /* AJAX CALL #2 */
});

내가 시도한 것 :

위의 코드는 다운로드를 시작한 후 두 개의 ajax 호출을 호출하려고했습니다. 이것은 작동하지 않습니다. 다운로드가 완료된 후 호출이 시작되도록 약간의 지연을두면 작동하지만 파일이 커질 수 있으므로 알 수없는 시간이 걸리는 것은 물론 나쁜 해결책입니다.

Ajax 호출이 취소되는 이유에 대해 정말 혼란 스럽습니까? 링크를 누르면 페이지가 언로드되기 때문입니까?

하나의 스레드가있는 개발 서버에서만 실행중인 것을 보면 링크를 따라가는 즉시 설정하려는 새로운 ajax 호출이 서버가 사용 중이기 때문에 실패 할 수 있습니다.


해결 :

나는 사이트의 buttom에 숨겨진 iframe을 추가하고 내 링크로 타겟팅했습니다. ajax 호출이 이제 취소되지 않기 때문에 JS 코드도 제거했습니다.

이제 코드는 다음과 같습니다.

HTML :

<a href="/test" target="filetargetframe"  id="testfile">Tasks</a>

********

<iframe name="filetargetframe" style="display:none"></iframe>
ReturnToZero

yoavmatchulsky의 답변을 사용하여 문제가 해결되었습니다.

나는 사이트의 buttom에 숨겨진 iframe을 추가하고 내 링크로 타겟팅했습니다. ajax 호출이 이제 취소되지 않기 때문에 JS 코드도 제거했습니다.

이제 코드는 다음과 같습니다.

HTML :

<a href="/test" target="filetargetframe"  id="testfile">Tasks</a>

********

<iframe name="filetargetframe" style="display:none"></iframe>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

파일 이름에 대한 if 문이 호출 된 AJAX 요청

분류에서Dev

일부 OSX는 완전한 HTTP 요청이있을 때까지 포트 80에 대한 소켓 호출을 차단합니다.

분류에서Dev

선택기에서 파일을 다운로드하려면 다음 Google 드라이브 범위에 대한 확인 요청을 제출해야합니까?

분류에서Dev

CSV 파일에 대한 HTTP 요청이 문자열을 생성합니다. 어떻게 디코딩합니까?

분류에서Dev

jQuery Ajax 요청이 AngularJS $ http 요청으로 바뀝니다.

분류에서Dev

PHP 파일이 Ajax 요청을로드하지 않습니다.

분류에서Dev

jQuery Ajax-불완전한 (이진) 파일 다운로드

분류에서Dev

jQuery Ajax 호출이 실패한 것 같지만 파일이 있습니다.

분류에서Dev

jquery의 ajax 호출에 대한 http 500

분류에서Dev

JQuery의 $ .ajax는 동일한 VM을 호출합니다.

분류에서Dev

.ajax () 호출의 데이터에 대한 jQuery .find ()가 정의되지 않은 것을 반환합니다.

분류에서Dev

setInterval을 통한 jQuery .ajax XHR 요청이 Raspberry PI Chromium에서 제대로 작동하지 않습니다.

분류에서Dev

curl에는 요청 사이에 일시 중지가없고, wget에는 동적 파일 출력 이름이 없습니다. 순차적 인 파일 다운로드 범위에 대한 준비된 대안이 있습니까?

분류에서Dev

jQuery AJAX 호출이 txt 파일에서 잘못된 값을 가져옵니다.

분류에서Dev

동일한 ajax 호출에 대해 다른 요청 헤더가있는 이유는 무엇입니까?

분류에서Dev

PHP 파일에 대한 AJAX 요청, PHP 파일이 수신되지 않음

분류에서Dev

jQuery Ajax는 데이터를 검색하지 않는 PHP에 대한 요청을 얻습니다.

분류에서Dev

cURL HTTP Post 요청을 통해 파일을 다운로드 한 다음 해당 파일을 저장하려면 어떻게해야합니까?

분류에서Dev

ajax 요청에 의한 파일 호출 결과를 다른 div에 표시

분류에서Dev

동일한 페이지에서 ajax 호출을 만드는 방법 ajax 요청을 보내고 동일한 페이지에 가져 오기

분류에서Dev

Python 요청 모듈은 파일 대신 html을 다운로드합니다.

분류에서Dev

AJAX가 동일한 사이트에서 다른 PHP ID를로드하는 작업을 중지합니다.

분류에서Dev

PHP 파일에 대한 AJAX 호출 : 반환 값이 비어 있습니다.

분류에서Dev

다른 URL에 대한 HTTP 요청 이름 확인을 동일한 호스트에 캐시합니다. 가능한?

분류에서Dev

jQuery ajax 요청은 두 번째 호출에서만 값을 반환합니다.

분류에서Dev

ajax 호출 MVC로 DB에서 파일 다운로드

분류에서Dev

Google 드라이브 용 pydrive 라이브러리가 요청을 사용하여 요청한 형식으로 파일을 다운로드하지 않습니다.

분류에서Dev

Google 드라이브 API 인증 Http 요청이 403 응답을 반환합니다. "사용자가 xxxxxx 파일에 대한 xxxx 읽기 액세스 권한을 앱에 부여하지 않았습니다."

분류에서Dev

동일한 PHP 페이지에 대한 동일한 JavaScript AJAX 호출 중 3 개가 500 (내부 서버 오류)을 발생시킵니다.

Related 관련 기사

  1. 1

    파일 이름에 대한 if 문이 호출 된 AJAX 요청

  2. 2

    일부 OSX는 완전한 HTTP 요청이있을 때까지 포트 80에 대한 소켓 호출을 차단합니다.

  3. 3

    선택기에서 파일을 다운로드하려면 다음 Google 드라이브 범위에 대한 확인 요청을 제출해야합니까?

  4. 4

    CSV 파일에 대한 HTTP 요청이 문자열을 생성합니다. 어떻게 디코딩합니까?

  5. 5

    jQuery Ajax 요청이 AngularJS $ http 요청으로 바뀝니다.

  6. 6

    PHP 파일이 Ajax 요청을로드하지 않습니다.

  7. 7

    jQuery Ajax-불완전한 (이진) 파일 다운로드

  8. 8

    jQuery Ajax 호출이 실패한 것 같지만 파일이 있습니다.

  9. 9

    jquery의 ajax 호출에 대한 http 500

  10. 10

    JQuery의 $ .ajax는 동일한 VM을 호출합니다.

  11. 11

    .ajax () 호출의 데이터에 대한 jQuery .find ()가 정의되지 않은 것을 반환합니다.

  12. 12

    setInterval을 통한 jQuery .ajax XHR 요청이 Raspberry PI Chromium에서 제대로 작동하지 않습니다.

  13. 13

    curl에는 요청 사이에 일시 중지가없고, wget에는 동적 파일 출력 이름이 없습니다. 순차적 인 파일 다운로드 범위에 대한 준비된 대안이 있습니까?

  14. 14

    jQuery AJAX 호출이 txt 파일에서 잘못된 값을 가져옵니다.

  15. 15

    동일한 ajax 호출에 대해 다른 요청 헤더가있는 이유는 무엇입니까?

  16. 16

    PHP 파일에 대한 AJAX 요청, PHP 파일이 수신되지 않음

  17. 17

    jQuery Ajax는 데이터를 검색하지 않는 PHP에 대한 요청을 얻습니다.

  18. 18

    cURL HTTP Post 요청을 통해 파일을 다운로드 한 다음 해당 파일을 저장하려면 어떻게해야합니까?

  19. 19

    ajax 요청에 의한 파일 호출 결과를 다른 div에 표시

  20. 20

    동일한 페이지에서 ajax 호출을 만드는 방법 ajax 요청을 보내고 동일한 페이지에 가져 오기

  21. 21

    Python 요청 모듈은 파일 대신 html을 다운로드합니다.

  22. 22

    AJAX가 동일한 사이트에서 다른 PHP ID를로드하는 작업을 중지합니다.

  23. 23

    PHP 파일에 대한 AJAX 호출 : 반환 값이 비어 있습니다.

  24. 24

    다른 URL에 대한 HTTP 요청 이름 확인을 동일한 호스트에 캐시합니다. 가능한?

  25. 25

    jQuery ajax 요청은 두 번째 호출에서만 값을 반환합니다.

  26. 26

    ajax 호출 MVC로 DB에서 파일 다운로드

  27. 27

    Google 드라이브 용 pydrive 라이브러리가 요청을 사용하여 요청한 형식으로 파일을 다운로드하지 않습니다.

  28. 28

    Google 드라이브 API 인증 Http 요청이 403 응답을 반환합니다. "사용자가 xxxxxx 파일에 대한 xxxx 읽기 액세스 권한을 앱에 부여하지 않았습니다."

  29. 29

    동일한 PHP 페이지에 대한 동일한 JavaScript AJAX 호출 중 3 개가 500 (내부 서버 오류)을 발생시킵니다.

뜨겁다태그

보관