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