1

D2L SDK への API 呼び出しで、「Timestamp out of range」と数字が表示されます。ドキュメントによると、これはサーバーとクライアント間のタイムスタンプのずれによるものです。Java SDK で、これに対処するためにinterpretResult()を使用する呼び出しが見られます。javascriptからこれを行うにはどうすればよいですか?

4

1 に答える 1

1

歴史的に、D2L Javascript クライアントは、従来の「同一オリジン ポリシー」によって課せられた制限内で動作するために JSONP を利用していました。残念ながら、この手法を使用しても、クライアント リクエスタは、HTTP 200/OK 結果以外の結果の応答本文に直接アクセスできません。

D2L は最近 Javascript クライアント ライブラリに改善を加えたので、LMS と同じドメイン + ポートで呼び出し元の Javascript をホストする場合、呼び出し元の Javascript は JSONP の代わりに AJAX を使用でき、200 以外の結果に対処できるはずです。 、時間のずれを検出し、それに応じて調整します。スクリプトは、LMS と同じドメイン、同じポート、同じ HTTP スキーム (HTTP または HTTPS) を使用してホストする必要があることに注意してください。したがって、D2L Javascript クライアント ライブラリの最新バージョンを使用していることを確認してください。

ここで、クロック スキュー (403 応答が発生する) の特定のケースでは、ajax/xmlhttprequest から応答本文を渡すことができD2L.Util.calculateSkew()、スキュー値が返されます。D2L.ApplicationContext.createUserContext()またはを呼び出す場合.createUserContextWithValues()は、オプションのパラメーター (デフォルト 0) を使用して、クロック スキュー値に対応します。

于 2013-02-12T14:01:03.893 に答える