2013-02-07 48 views

回答

1

歷史上,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),以適應時鐘歪斜值。