Ajax успешный обратный вызов для «удаления» не запускается в Firefox - PullRequest
2 голосов
/ 21 июля 2010

У меня есть тестовая страница, чтобы использовать Ajax для отправки http-запроса на удаление на сервер.Следующий код JS работает так, как задумано в IE7, но не работает в Firefox (если я не сделаю вызов ajax асинхронным).

В Firefox, если async не равен false, обратный вызов ошибки запускается со статусом 0.

  1. Может ли кто-нибудь помочь объяснить, почему это, по-видимому, работает в Firefox, если вызов является синхронным?
  2. В контексте этой страницы синхронный вызов не является плохой вещью,однако я прочитал, что этого следует избегать, так как это фактически заморозит окно браузера, пока ответ не вернется.Кто-нибудь может предложить альтернативное решение?

Соответствующий код приведен ниже: -

<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

1 Ответ

2 голосов
/ 21 июля 2010

Firefox не вызывает onreadystatechange для синхронных запросов, поэтому jQuery может не вызвать ваш пользовательский обратный вызов из-за этого.В противном случае отправка запросов на синхронизацию - плохая идея.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...