HTTP 406 ошибка ответа сервера: при отправке параметров фильтрации в запросе

0

У меня есть приложение в Backand, которое я создаю, и я пытаюсь использовать параметры фильтра. При вызове моего API с помощью $http я получаю 406 error в запросе http.

Это будет вызов API, передающий объект фильтра:

function getUserAttractions(userId) {

  return $http({

    method: 'GET',

    url: Backand.getApiUrl() + '/1/objects/attractions',

    params: {

      sort: [{
        "fieldName": "date",
        "order": "asc"
      }],

      filter: [{
        "fieldName": "user_id",
        "operand": "contains",
        "value": "1"
      }]

    }

  });

}
  • 1
    Недостаточно информации - 406 приходит из бэкэнда. Так что просто проверьте код и журналы бэкэнда - что получено и почему бэкэнд ответил 406
  • 0
    Я думаю, вам следует проверить свой бэкэнд и, возможно, показать часть его кода (тот метод API, который обрабатывает эти запросы).
Теги:
asp.net-web-api
backend
backand

2 ответа

3
Лучший ответ

Во-первых, вы должны использовать "operator" вместо "operand". Если user_id является полем объекта, то фильтр должен быть:

filter: [{"fieldName":"user_id","operator":"in","value":"1"}]

здесь вы можете найти дополнительную документацию для других типов полей http://docs.backand.com/en/latest/apidocs/apidescription/index.html#rest-api-crud-operations

Отказ от ответственности: я работаю для Backand

  • 0
    Спасибо! Это работает сейчас!
1

С HTTP-статусом 406 (не допустимо) сервер жалуется, что он не может выполнить ваш запрос, возможно, из-за вашего (отсутствующего) заголовка Accept. См. Википедию.

Я не знаю, что должен отправить ваш сервер, поэтому я предполагаю, что он должен отправить JSON в ответ.

Попробуйте следующее:

return $http({
    method: 'GET',
    url: Backand.getApiUrl() + '/1/objects/attractions',
    headers: {
        'Accept': 'application/json, */*'
    },
    params: {
        sort: [{"fieldName":"date","order":"asc"}],
        filter: [{"fieldName":"user_id","operand":"contains","value":"1"}]
    }
});

См. Страницу AngularJS для получения дополнительной информации.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню