2012-07-26 3 views
2

사용자가 양식에서 일부 옵션을 선택할 수있는 페이지가 있습니다. 양식 제출 이벤트는이 데이터를 .AJAX를 통해 PHP 페이지에 게시하고 서버에서 PHP 페이지가 파일 이름을 반환하면 jquery.Download를 사용하여 파일을 저장하라는 메시지를 표시합니다.JQuery AJAX 파일 다운로드 IE8에서 노란색 보안 표시 줄 표시

이것은 FF 및 Chrome에서 완벽하게 작동하지만 IE에서 두려운 노란색 정보 표시 줄을 수신하고 있습니다. 설상가상으로, 사용자가 알림 표시 줄에서 "어쨌든 다운로드"를 선택하면 실제로 파일을 다운로드하라는 메시지가 표시되지 않고 페이지가 새로 고침됩니다.

Stackoverflow에서 검색을 한 결과이 질문에 대한 답변이 표시되지 않았습니다.

답변

2

사용자 시작 브라우저 이벤트와 프로그래밍 방식으로 시작된 브라우저 이벤트 간의 정의가 다르기 때문에이 문제가 발생합니다. 에 jQuery를 .click() 이벤트를 결합하여 새 탭을 열하려고 할 때 jQuery를 액션에 해당 이벤트를 바인딩의 결과로 해고 일반적으로 이벤트를 프로그램 적

$("#myElement").click(
    function() { 
     $.ajax(...); 
    } 
); 

즉 시작되는 것으로 간주되어이 같은 증상이 나타납니다 등

당신의 클릭 가능한 링크 문제에 대한 주위에 가능한 작업은 AJAX 호출이

<script type="text/javascript"> 

function submitAndDownload() { 
    $.ajax(...); //form submit 
    $.ajax(...); //download file 
} 

</script> 

<button onClick="submitAndDownload();"></button> 

이 방법 브라우저, 즉 제작 된 JS 함수를 호출하여 HTML 코드에서 이벤트 속성을 사용하는 것입니다 기음 사용자가 시작할 이벤트를 onsiders. 물론 양식 제출 아약스 요청 본문에 다운로드 아약스 요청을 중첩시킬 수 있습니다. 그것은 당신이해야 할 일에 달려 있습니다. 그러나 믹스에서 다른 ajax 호출이있을 경우 다른 하나가 중첩 된 경우 소켓 클로저에 약간의 불일치가 발생할 수 있습니다.

+0

정말 도움이됩니다. 그렇다면 제출 버튼에 onClick을 넣는 대신 제출 이벤트 핸들러를 사용한다는 의미입니까? –

+1

정확히 AJAX 호출이 시작 되었습니까? 코드를 제공 할 수 있습니까? 접근 방식은 수행해야하는 작업 (즉, 이벤트 시퀀스 등)에 따라 달라집니다. – travega

+0

코드가있는 원본 게시물을 업데이트했습니다. 감사합니다! –

관련 문제