2010-07-21 7 views
1

Ajax를 사용하여 서버에 http 'delete'요청을하는 테스트 페이지가 있습니다. 다음 JS 코드는 IE7에서 의도 한대로 작동하지만 파이어 폭스에서는 작동하지 않는다 (Ajax 호출을 비동기로 만들지 않는 한). 비동기이 거짓이 아닌'delete'에 대한 Ajax 성공 콜백이 Firefox에서 트리거되지 않음

는 파이어 폭스에서 오류 콜백이 사람이 전화가 동기 인 경우 파이어 폭스에서 이유를 분명히이 작동 설명에 도움을 줄 수 0

  1. 의 상태 트리거됩니다?
  2. 이 페이지의 컨텍스트에서는 동기 호출이 나쁜 것은 아니지만 응답을 반환 할 때까지 브라우저 창을 효과적으로 멈추게하므로 피해야합니다. 누군가가 제안 할 수있는 대체 솔루션이 있습니까?

관련 코드는 다음과 같습니다 : - jQuery를가 그것 때문에 사용자 정의 콜백을 호출하는 데 실패 할 수 있도록

<script src="${url.context}/scripts/jquery-1.3.2.min.js"></script> 

<SCRIPT LANGUAGE="JavaScript"> 

jQuery.noConflict(); 

function deleteImage(nodeParam) { 
     alert('hello'); 
     var options = { 
     type: 'DELETE', 
    async: false, 
     url: '${url.context}/service/api/asset/delete?alf_ticket=${session.ticket}'+'&format=text'+'&'+nodeParam, 
     dataType: 'json', 
     success: function(data, textStatus) { 
      jQuery('#result-div').html(''); 
      if (data['ok'] == true) { 
      //jQuery('#result-div').html('Delete successful using parameter - ' + nodeParam); 
      alert("Delete successful"); 
      } else { 
      alert("Response 'ok' set to 'false' on success callback!"); 
      jQuery('#result-div').html('Delete failed!'); 
      } 
     }, 
     error: function (request, textStatus, errorThrown) { 
      //jQuery('#result-div').html('Delete failed!'); 
    alert("Delete Failed"); 
    alert(request.status); 
      //alert("Error callback triggered, request failed with status: " + request.status + ' ' + request.responseText); 
     } 
     }; 
     jQuery.ajax(options); 
} 
// End --> 
</script> 

감사 J

+0

Afaik에는 '삭제'유형이 없습니다. 가져 오기 또는 게시를 사용하십시오. – jantimon

+1

삭제가 지원됩니다. 그러나 모든 브라우저에서 지원되지 않을 수 있습니다. – Jamen

답변

1

파이어 폭스, 동기식 요청을 onreadystatechange를 호출하지 않습니다. 그렇지 않으면 일반적으로 동기화 요청을하는 것이 좋습니다.

+0

이것을 명확히 할 수 있습니까? 당신이 말하는 것은 onreadystate 변경 호출은 콜백이 실행되는 것을 막는 것입니다. 나는 async = false 일 때 모든 것이 작동 함을 주목한다. – Jamen

관련 문제