2

I'm using contentful as backend for my mobile app.

match fixtures are stored within contentful. I want to query the next match, but i get the following error:

422 (Unprocessable Entity)

My function to retrieve the next match:

function nextOpponent(){
        var content_Type = mainConfig.config.contentType.match // Matches
        var order = "fields.datum";
        var gt = new Date().toLocaleString();
        console.log(gt);
        var query = "content_type=" + content_Type +
            "&order=" + order +
            "&fields.datum%5Bgte%5D=" + encodeURI(gt);

        contentful.entries(query).then(
            //success
            function(response){
                $scope.nextMatch = response.data.items[0];
                console.log($scope.nextMatch);
            },
            //error
            function(response){

            }
        )
    }
4

1 回答 1

4

您面临的问题主要是因为日期字符串格式错误。日期字符串必须遵循ISO-8601 格式。您可以使用内置 JS 函数Date#toISOString或通过您选择的日期格式库创建这样的格式化字符串。除此之外,您可以将参数作为对象传递。

以下代码使用内置日期方法:

var gt = new Date().toISOString();

contentful.entries({
  content_type: content_Type,
  order: order,
  'fields.datum[gte]': gt
}).then(function () {
  // go ahead here...
});

附加说明:Contentful 将根据请求的 URL 缓存查询结果。因此,如果您不需要高精度,我建议使用仅反映当前日期或一天中相应小时的时间戳。例如2015-07-282015-07-28T15:00

于 2015-07-21T10:45:31.533 回答