2014-06-10 4 views
1

Я использую угловой с фабрикой ngResource с остальным контроллером на бэкэнде Rails. Мой API реагирует с 406 ответа с ответом JSon структурированном как следующее, если запрос на запись сделана, чтобы создать новый рекорд:Обработка ответа 406 http в angularjs

{ success: false, errors ['error1', 'error2'], message: "record didn't save" } 

Проблема заключается в том, что я вижу ошибку запроса пост в моей консоли, когда я вернусь 406 ответ от API и угловой не справляется с ответом.

Что-то вроде:

POST http://localhost:3000/api/widget/384/comments 406 (Not Acceptable) includes.js?v=e777c6e0fdfb9a725e857c8ca3eab18f:545 
    sendReplacement includes.js?v=e777c6e0fdfb9a725e857c8ca3eab18f:545 
    (anonymous function) angular.js?body=1:8381 
    sendReq angular.js?body=1:8181 
    $http.serverRequest angular.js?body=1:7922 
    wrappedCallback angular.js?body=1:11320 
    wrappedCallback angular.js?body=1:11320 
    (anonymous function) angular.js?body=1:11406 
    Scope.$eval angular.js?body=1:12413 
    Scope.$digest angular.js?body=1:12225 
    Scope.$apply angular.js?body=1:12517 
    (anonymous function) angular.js?body=1:18627 
    jQuery.event.dispatch jquery.js?body=1:5117 
    elemData.handle 

Мой угловой код структурирован как:

Object.save({ object_id: 1 }).$promise.then(function (response) { 
    if (response.success) { 
    //success 
    } else { 
    // something else 
    } 

Как Поручаю угловой обрабатывать такого рода ответ HTTP?

ответ

1

Вы должны проверить свой код сервера в целом 406 означает, что некоторые заголовки/тип содержимого неприемлемы для вашего клиента.

Принять: типы MIME, принятые клиентом. Например, браузер может принимать только обратно типы данных (файлы HTML, файлы GIF и т. Д.), Он знает, как обрабатывать. Accept-Charset: набор символов, принятый клиентом. Accept-Encoding: кодировка данных, принятая клиентом, например. форматы файлов понимаются. Accept-Language: Естественные языки (английский, немецкий и т. Д.), Принятые клиентом. Принимаемые диапазоны: принимает ли клиент диапазоны байтов из ресурса, то есть часть ресурса.

Так что проверьте, какие заголовки выводятся вашим сервером.

Также вы можете проверить, какие другие свойства доступны на объекте «ответ».

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