Chrome 개발자 창의 ” 네트워크 “탭에 있는 상태 열에서 ” 보류 중 “은 무엇을 의미 합니까?
내 페이지 스크립트가 응답에 CSV 파일 다운로드를위한 콘텐츠 헤더가 포함 된 GET 요청을 발행 할 때 발생합니다.
Content-type: text/csv;
Content-Disposition: attachment; filename=myfile.csv
이것은 FF 및 IE7에서 잘 작동하며 예상대로 CSV 파일을 다운로드하고 파일 선택기를 열어 파일을 저장하지만 Chrome은 아무것도하지 않습니다. 서버가 요청에 응답하는 것을 확인했기 때문에 Chrome이 응답을 처리하지 않는 것 같습니다.
흥미롭게도 Chrome 주소 표시 줄에 URL을 입력하고을 누르면 모든 것이 예상대로 작동합니다.
참고 : Win-XP의 Chrome 10.0.648.204
답변
제 경우에는 AdBlock 확장으로 인해 “보류 중”상태가 발생했다는 사실을 발견했습니다. 로드 할 수없는 이미지의 URL에 “ad”라는 단어가 포함되어있어 AdBlock이로드되지 않도록했습니다.
AdBlock을 비활성화하면이 문제가 해결됩니다.
URL에 “ad”가 포함되지 않도록 파일의 이름을 바꾸면 문제가 해결되며 분명히 더 나은 솔루션입니다. 광고가 아니라면 그대로 두어야합니다. 🙂
답변
HTTPS 어디서나 플러그인을 사용할 때도 이것을 얻습니다. 이 플러그인에는 http 대신 https가있는 사이트 목록이 있습니다. 따라서 실제 요청이 이루어지기 전에 어떻게 든 이미 취소되고 있다고 가정합니다.
예를 들어 http://stackexchange.com으로 이동하면 개발자에서 먼저 상태 (종료 됨)의 요청이 표시됩니다. 이 요청에는 일부 헤더가 있지만 GET, User-Agent 및 Accept 만 있습니다. 응답도 없습니다.
그런 다음 전체 헤더 등 으로 https://stackexchange.com에 대한 요청이 있습니다.
그래서 전송되지 않은 요청에 사용된다고 가정합니다.
답변
mp3 파일에 대한 보류중인 요청에 문제가있었습니다. 나는 mp3 파일의 목록과 그들을 재생하는 하나의 플레이어가 있었다. 이미 다운로드 한 파일을 선택하면 Chrome에서 요청을 차단하고 개발자 도구의 네트워크 탭에 ‘보류중인 요청’을 표시합니다.
모든 버전의 Chrome이 영향을받는 것 같습니다.
내가 찾은 해결책은 다음과 같습니다.
player[0].setAttribute('src','video.webm?dummy=' + Date.now());
각 URL 끝에 더미 쿼리 문자열을 추가하기 만하면됩니다. 이렇게하면 Chrome이 파일을 다시 다운로드합니다.
팝콘 플레이어의 또 다른 예 (jquery 사용) :
url = $(this).find('.url_song').attr('url');
pop = Popcorn.smart( "#player_", url + '?i=' + Date.now());
이것은 나를 위해 작동합니다. 실제로 리소스는 캐시 시스템에 저장되지 않습니다. .csv 파일에서도 동일한 방식으로 작동합니다.
답변
OSX Mavericks에서 동일한 문제가 발생했는데 Sophos 바이러스 백신이 특정 요청을 차단하는 것으로 나타났습니다. 일단 제거하면 문제가 해결되었습니다.
확장 프로그램으로 인해 발생할 수 있다고 생각되면 시도하고 테스트하는 쉬운 방법 중 하나는 '--disable-extensions
플래그로 크롬을 열어 문제가 해결되는지 확인하는 것입니다. 그래도 문제가 해결되지 않으면 브라우저 너머에서 문제를 일으키는 다른 애플리케이션, 특히 요청에 영향을 줄 수있는 보안 앱이 있는지 확인하는 것이 좋습니다.
답변
네트워크 보류 상태는 요청이 진행 중임을 의미합니다. 응답하는 즉시 총 경과 시간으로 시간이 업데이트됩니다.
답변
application / json ajax 호출과 비슷한 문제가 있습니다. ff / IE에서는 괜찮 았습니다. Chrome에서 개발자 네트워크 창의 상태는 항상 (보류 중) 다른 상태 코드가 반환 되었기 때문입니다.
제 경우에는 Json 응답을 변경하여 HttpStatusCode 200을 보내면 Chrome이 정상이고 상태 텍스트가 200 OK로 변경되었습니다.
예를 들어 ASP.NET Web Api 사용
return new HttpResponseMessage(HttpStatusCode.OK ) {
Content = request.Content
};
답변
Chrome과 동일한 문제 : 내 html 페이지에 다음 코드가 있습니다.
<body>
...
<script src="http://myserver/lib/load.js"></script>
...
</body>
하지만 네트워크 패널을 보면 load.js
항상 상태였습니다 pending
.
비동기로드를 사용하는 해결 방법을 찾았습니다 load.js
.
<body>
...
<script>
setTimeout(function(){
var head, script;
head = document.getElementsByTagName("head")[0];
script = document.createElement("script");
script.src = "http://myserver/lib/load.js";
head.appendChild(script);
}, 1);
</script>
...
</body>
이제 잘 작동합니다.