HTTP 406错误服务器响应:在请求中发送过滤参数时

时间:2015-11-30 11:31:20

标签: javascript angularjs asp.net-web-api backend backand

我在Backand中有应用程序,我正在构建,我正在尝试使用过滤器参数。使用$http调用我的API时,我在http请求中获得406 error

这将是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"
      }]

    }

  });

}

2 个答案:

答案 0 :(得分:3)

首先,您应该使用"运算符"而不是"操作数"。 如果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工作

答案 1 :(得分:1)

对于HTTP状态406(不可接受),服务器抱怨它无法满足您的请求,可能是因为您的(缺少)Accept标头。请参阅Wikipedia

我不知道您的服务器应该发送什么,因此我假设它应该在响应中发送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 Page