AJAX 투표의 URL 을 반환 JSON 보이지 않는 반환하는 신선한 응답을 사용하여(jQuery$.ajax()method)

StackOverflow https://stackoverflow.com/questions/1412901

문제

내 프로젝트에 필요한 투표는 특정 URL 을 JSON 으로 응답을 사용하여,AJAX.첫 번째 AJAX 요청에게 경고하는 서버에게 JSON 콘텐츠,그리고 시작한 건물 및 캐시에 저장하는 작업 응답을 보내는 나를 돌아 {"상태":"중"} 각 후속 AJAX 를 요청할 때까지 JSON 준비가 된 것입니다.해당 지점에서 응답을 변경 JSON 는 콘텐츠를 포함할 수 있는 분석과 문서에 표시되는 내가 하고 싶로 URL 을 반환합 이외의 아무것도 {"상태":"중"}.

내가 설정한 폴링 기능으로 작동하는 예상을 반복적으로 요청 JSON 에서 URL 이 있습니다.그러나 문제는 그것이 계속해서 응답 {"상태":"중"} 을 때에도 내가 탐색으로 직접 URL 을 볼 수 있는 전 JSON 응답이 준비되고 제공됩니다.어떤 이유로,나 폴링 기능 여전히 가져옵 {"상태":"중"}.

때 나는 페이지를 새로 고침을 포함하는 폴링 코드,그것은 일반적으로 작동에 첫 번째 요청-즉그것은 전체 JSON 응답입니다.그렇기 때문에 나는 믿고 그것이 어떤 종류의 문제를 캐싱하지만,나는 확실하지 않다가 나는 이유.지 각 아약스 요청에 신선한 응답 또는 이것이 내가 설정할 수 있습니다에 나 $.ajax() 전화?

여기에 코드를 사용하고 지금:

function ajax_poll() {
  $.ajax({
    url: JSON_URL, // JSON_URL is a string containing the URL to poll
    dataType: 'json',
    error: function(xhr_data) {
      display_error();
    },
    success: function(xhr_data) {
      if (xhr_data.status == 'pending') {
        poll++; // increment poll counter // poll is a global variable to track the number of requests made
        if (poll < POLLS) { // POLLS is a global variable to set the maximum number of requests
          setTimeout(function() { ajax_poll(); }, INTERVAL); // wait INTERVAL before another AJAX request
        } else {
          display_error();
        }
      } else {
        success(xhr_data);
      }
    },
    contentType: 'application/json'
  });
}

공() 는 기능을 표시하는 JSON 콘텐츠(예:내가 무엇을 기다리를 사용할 수 있는 폴링)습니다.

한 가지 주목할만한 가치가 그를 테스트하는 동안 코드를 로컬에서 투표니다.json 테스트 파일 내가 변경할 수 있습니다 이 파일의 내용 {"상태":"중"} 을 포함하는 응답 내용처럼 내가 찾는 사람,저 사이에 파일을 폴링 인스턴스,그리고 다음 설문 조사,내 코드는 새로운 콘텐츠와 예상대로 작동합니다.그것은 단지 작동하지 않을 준비 환경에서.

도움이 되었습니까?

해결책

당신이 시도할 수 있습니다 추가 "cache: false" 옵션.

다른 팁

그냥 설명하 잠재적인 이유가 발생하는:당신은 아마도 발행을 얻을 AJAX 요청,하지만 당신은 차별화된 URL 을 어떤 방법으로(없음 추가적인 데이터 쿼리에서 문자열이,예를 들어).

브라우저에서는 이를 요청하지 않더라도 귀찮게 충돌하는 서버 전체 요청을(아마제 조건 304GET 요청을 대신에).결국 이 모든 것의 결과는 당신이 보지 않는 활동은 당신이 볼 것으로 예상.

간단한 방법으로 이 문제를 해결하지 않는 캐시 결과의 AJAX 요청을 보내거나 게시물을 요청합니다.에 영향을 미치는 캐시 옵션에 덮여 다른 게시물이 있습니다.문제는 포스트 방법은 있지 않은지 절약도 당신의 행동에 의해,그리고 당신은 당신을 표현하는 의도 나와는 GET 요청을 합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top