2

モバイルアプリのバックエンドとして contentful を使用しています。

試合の備品は contentful 内に保存されます。次の一致を照会したいのですが、次のエラーが発生します。

422 (Unprocessable Entity)

次の一致を取得する私の関数:

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-28、または2015-07-28T15:00

于 2015-07-21T10:45:31.533 に答える