2013-08-29 7 views
0

Мне нужно определить, доступен ли мой сервис в данный момент.Лучшая практика для обнаружения, если услуга доступна

Но по какой-то причине я получаю успех в функции ajax(), когда пытаюсь достичь некоторых методов обслуживания, даже если служба отключена.

Я получаю html-страницу с сообщением 404 как данные в поле успеха.

Мое лучшее предположение - использовать typeof(data) и сравнить его со строкой.

Но я думаю, что должно быть лучшее решение.

Ничего особенного только $ .ajax()

$.ajax({ 
      url: '../Services/Service.svc/getItems', 
      data: {}, 
      error: function (error) { 

      }, 
      success: function (data, status, xhr) { 

      }, 
      datatype: "json", 
     }); 
+1

Вы можете добавить код js/ajax? Thx –

+0

@WimOmbelets Я сделал это, но не думаю, что это помогает – maxvektor

+0

Ссылка: http://api.jquery.com/jQuery.ajax/ – Paul

ответ

2

не Идущий с информацией предоставленной вами.

Если вы контролируете службу (то есть: вы ее создали), вы можете заставить веб-сервер вернуть код 503, когда услуга недоступна. Это то, что веб-сервер должен делать, когда ваша служба отключена.

Если нет, тогда вам нужно проверить код ошибки 404 вместо того, что вы получаете прямо сейчас, и грамотно обрабатывать его в своем коде.

Я предполагаю, что вы используете jQuery для клиента, так как вы ссылаетесь на вызов ajax(). Вот простой пример, чтобы проверить ERRORCODE в отказоустойчивом обратном вызове:

var serviceRequest = $.ajax(...); 

serviceRequest.done(function(returnedData) { 
    // Service is active and returning data. 
}); 

serviceRequest.fail(function (xhr) { 
    if(xhr.status == 404) { 
     // handle this. 
    } 

    if(xhr.status == 503) { 
     // handle this. 
    } 
}); 

Почему вы получаете 404 и ударять обратный вызов успеха является то, что я никогда не видел раньше.

Смежные вопросы