2016-03-17 5 views
0

Я работаю над инструментом, который позволяет пользователю вводить некоторые идентификаторы и проверять, существуют ли эти идентификаторы в базе данных.Разрешить выполнение кода после получения ошибки 404 при использовании REST

Код был написан для работы с базой данных SOLR, поэтому, если идентификатор не существует, проблем не было. Теперь, хотя я разговариваю с CouchDB, поэтому, если идентификатор не существует, инструмент не даст результата и приведет к ошибке 404: 404 (Object Not Found).

Вот мой код:

// ... 

    function caller() { 
     if (validIDs.length === 0) { 
      promise.resolve(); 

      return; 
     } 

     var ID = validIDs.pop(); 
     var url = preURL + ID; 
     var wrappedResult = { 
      "ID": ID, 
      "data": undefined 
     }; 

     $.getJSON(url).done(function(data) { 
      wrappedResult["data"] = data; 
      caller(); 
     }); 

     wrappedResults.push(wrappedResult); 
    } 

    caller(); 

    return [promise, wrappedResults]; 
} 

Я пытался использовать что-то вроде:

$.getJSON({ 
    url: url, 
    dataType: "json", 
    success: function(data) { 
     wrappedResult["data"] = data; 
     myForEach(); 
     alert('success'); 
    }, 
    error: function(data) { 
     alert('error'); 
    }, 
    complete: function(xhr, data) { 
     if (xhr.status !== 0) 
      alert('success'); 
     else 
      alert('fail'); 
    } 
}); 

Но это не сработало. html не отображает таблицу, а в консоли: 404 (объект не найден)

Я рассмотрел решение, предложенное в другом аналогичном вопросе, но они не решили мою проблему.

Пожалуйста, есть способ, которым мой код может продолжать показывать результаты принятых идентификаторов и указывать неверные данные?

+0

Что вы подразумеваете под словом "it does not work"? Вы получили сообщение об ошибке? Что-нибудь в консоли? – whipdancer

+0

да консоль показывает URL-адрес и пишет: 404 (Object Not Found). –

+0

Возможный дубликат [jQuery Ajax 404 Handling] (http://stackoverflow.com/questions/4281274/jquery-ajax-404-handling) – whipdancer

ответ

0

jQuery Ajax 404 Обращение не ответил на мой вопрос. Решена проблема с использованием var jqXHR = $ .ajax ({ url: url, тип: "GET", }); и вместо jqXHR.done (функция (данные) { .....}); Я использовал jqXHR.always (функция (jqXHR, textStatus, errorThrown) { ........}); консоль все еще показывает 404 (объект не найден), но код не остановлен и работает

+0

Какую версию jquery вы используете, это не работает для меня? – Matt

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