2010-12-07 9 views
1

나는 ajax 호출을 만들고있는 응용 프로그램에서 일하고 있는데, 때로는 Ajax 호출이 자체적으로 복제되고 두 번째 호출이 완료 될 때 약간의 특이한 동작을 경험하게됩니다.하지만 얻을 수는 없습니다. 응답과 원래 하나는 영원히 계속됩니다. 이것은 Ajax 호출이 다시 시작되거나 새로 고침을 눌렀을 때 수정됩니다.jquery ajax 호출 응답을 결코 반환하지 않습니다

문제는 무작위로 발생하기 때문에이 동작을 재현 할 수 없습니다. 탭이 열려 있고 대부분 다른 탭이나 프로그램을 사용하는 경우가 대부분입니다.

방화범 뚜껑을 사용하여 알아 차 렸던 유일한 점은 응답 헤더에 문제가있는 것 같습니다.

성공적인 통화와 비교하면 순서가 다르며 일부 정보가 완전히 누락되었습니다. Content-Type에는 $.ajaxSetup에 정의하고있는 text/html보다 항상 많은 유형이 있습니다.

$.ajaxSetup({ 
    dataType:'html', 
    cache:false, 
    type:'POST', 
    timeout:15000, 
    error:function() { 
    alert('Action aborted please try again'); 
    }, 
    complete:function(XMLHttpRequest,textStatus){ 
    //console.log('XMLHttpRequest.readyState : '+XMLHttpRequest.readyState+'\nXMLHttpRequest.statusText : '+XMLHttpRequest.statusText+'\nXMLHttpRequest.status : '+XMLHttpRequest.status+'\ntextStatus : '+textStatus); 
    } 
}); 

내 아약스 호출의 예 : 나는 dataType을 추가하고 winxp와 SP3 시스템에 로컬로 볼 때 또한 더 자주 발생하기 전에이 문제가 더 자주 많이 일어나고

var dataString = 'value='+value+'&value1='+value1+'&value2='+value2; 
    $.ajax({ 
    url:'file.php', 
    data:dataString, 
    success:function(resp){ 
     alert(resp); 

    } 
    }) 

xampp을 사용하여 나는 파이어 폭스와 IE 둘 다 생각한다.

윈도우 서버 2008과 아파치 및 PHP 스탠드 얼론을 실행하는 서버에서 테스트 한 적이 있으며 xampp은 아니며 그보다 적은 수입니다. 양식 내 가정용 PC 그것은 거의 내 사무실 pc에 위의 테스트가 발생하지 않습니다.

누구나 비슷한 유형의 동작을 보았거나 어쩌면 내 아약스 호출을 다르게 코딩하는 방법이 있습니다.

나는 플러그인을 사용하지 않으려하고 있으며, 긴 폴링은 아파치 서버에서 약간 무거워 보인다.

답변

0

jquery ajax 호출을 사용하는 방법은 기술적으로 정확합니다. 내가 할 수있는 한가지 제안은 당신이 가진 것처럼 수동으로 데이터 문자열을 구축하지 않는 것입니다. data 매개 변수에 객체 리터럴을 전달하고 jquery가 문자열 변환을 수행하도록 할 수 있습니다. 이것은 jquery가 XMLHttpRequest를 사용하여 때로는 엉망이 될 수있는 적절한 이스케이프 처리를 수행 할 수 있다는 부가적인 이점을 가지고 있습니다. 그 외, firebug의 console.trace() 명령을 사용하여 실제로 .ajax 호출을 두 개 만들고 그 이유를 확인하는 것이 좋습니다. ajaxSetup에서 설정할 수있는 'beforeSend'리스너가 있습니다. 배치하기 좋은 장소 일 수 있습니다.

var dataString= { 
    value: value, 
    value1: value1 
}; 

나는 거의 확실히 확신하는 단 하나의 호출 한 번에 화재하지만 그것은 자신을 복제 영원히로드 계속 너무 오래 걸리는 경우 :

0

당신은 같은 것을 의미한다.

나는 불을 지르고에서 스크린 샷을 첨부 해요 :

Firebug

+0

원래 요청처럼 결코 완료 대신 메신저 실제로 요청하지 않은 반응을 얻고 – alex

관련 문제