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"
      }]

    }

  });

}
4

2 回答 2

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 工作

于 2015-11-30T13:02:32.647 回答
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 页面

于 2015-11-30T12:34:02.620 回答