D2L解释结果()Timeskew和Javascript

D2L解释结果()Timeskew和Javascript,javascript,desire2learn,Javascript,Desire2learn,在对D2LSDK的API调用中,我得到了“时间戳超出范围”和一个数字。文档说这是由于服务器和客户端之间的时间戳偏差造成的。我在JavaSDK中看到用于处理此问题的调用。如何从javascript实现这一点?历史上,D2L javascript客户端使用JSONP是为了在传统“同源策略”施加的限制范围内工作。不幸的是,使用此技术不会让客户机请求者直接访问HTTP 200/OK结果以外的任何结果的响应体 D2L最近对Javascript客户端库进行了改进,因此现在,如果您将调用Javascript托

在对D2LSDK的API调用中,我得到了“时间戳超出范围”和一个数字。文档说这是由于服务器和客户端之间的时间戳偏差造成的。我在JavaSDK中看到用于处理此问题的调用。如何从javascript实现这一点?

历史上,D2L javascript客户端使用JSONP是为了在传统“同源策略”施加的限制范围内工作。不幸的是,使用此技术不会让客户机请求者直接访问HTTP 200/OK结果以外的任何结果的响应体

D2L最近对Javascript客户端库进行了改进,因此现在,如果您将调用Javascript托管在与LMS相同的域+端口上,则调用Javascript可以使用AJAX而不是JSONP,并且应该能够处理非200结果,检测时间偏差,并进行相应调整。请注意,您的脚本必须托管在与LMS相同的域上,具有相同的端口,并使用相同的HTTP方案(HTTP或HTTPS)。因此,请确保您使用的是D2L Javascript客户端库的最新版本


现在,在时钟偏移的特定情况下(导致403响应),您可以将响应主体从ajax/xmlhttprequest传递到
D2L.Util.calculateSkew()
,它将返回偏移值。然后调用
D2L.ApplicationContext.createUserContext()
.createUserContextWithValues()
,然后使用可选参数(默认值0)来调整时钟偏移值

历史上,D2L Javascript客户端使用JSONP是为了在传统“同源策略”施加的限制范围内工作。不幸的是,使用此技术不会让客户机请求者直接访问HTTP 200/OK结果以外的任何结果的响应体

D2L最近对Javascript客户端库进行了改进,因此现在,如果您将调用Javascript托管在与LMS相同的域+端口上,则调用Javascript可以使用AJAX而不是JSONP,并且应该能够处理非200结果,检测时间偏差,并进行相应调整。请注意,您的脚本必须托管在与LMS相同的域上,具有相同的端口,并使用相同的HTTP方案(HTTP或HTTPS)。因此,请确保您使用的是D2L Javascript客户端库的最新版本

现在,在时钟偏移的特定情况下(导致403响应),您可以将响应主体从ajax/xmlhttprequest传递到
D2L.Util.calculateSkew()
,它将返回偏移值。然后调用
D2L.ApplicationContext.createUserContext()
.createUserContextWithValues()
,然后使用可选参数(默认值0)来调整时钟偏移值