0

当我拨打电话为特定用户提供特定成绩值时,我收到“303 See Other”错误。

PUT /d2l/api/le/(D2LVERSION: version)/(D2LID: orgUnitId)/grades/(D2LID: gradeObjectId)/values/(D2LID: userId))

所有值都是有效的(否则我会收到 404 错误)。有趣的是,该电话适用于某些课程,但不适用于其他课程。有任何想法吗?

我们使用 Fiddler 来跟踪请求,请求的格式为(将敏感信息替换为 '...'):

PUT https://carmen.osu.edu/d2l/api/le/1.0/.../grades/.../values/947067?x_a= ...&x_b=-...&x_d=...&x_c=...&x_t=1374779761 
HTTP/1.1
Content-Type: application/json
Host: carmen.osu.edu
Content-Length: 44
Expect: 100-continue

{"GradeObjectType":1,"PointsNumerator":30.0} 

回应是:

HTTP/1.1 303 See other
Cache-Control: private
Content-Length: 0
Location: /d2l/error/500
Server: Microsoft-IIS/7.5
X-XSS-Protection: 0
X-Powered-By: ASP.NET
Date: Thu, 25 Jul 2013 19:16:40 GMT

编辑:我们发现如果已经输入了成绩值,则上述 PUT 调用可以正常工作。它仅在等级值为默认值时为我们提供 303。这只发生在本课程中(我们知道)。

4

1 回答 1

0

这听起来很像 Grades API 最近遇到的一个已知问题,我认为该问题已得到解决。此问题的修复程序随 5 月和 6 月的服务包版本一起分发。已解决的问题已解决并以这种方式描述:

不再允许以前在 Valence Learning Framework API for Grades 中允许除以零的情况。此问题已在 Learning Suite 10.2 Service Pack 1、Learning Suite 10.1 Service Pack 8、Learning Suite 10 Service Pack 12 和 Learning Suite 9.4.1 Service Pack 17 中修复。

请验证您的 LMS 是否已至少更新到列出的服务包级别:

  • 如果没有,那么更新到该服务包级别可能会解决您的问题。

  • 如果更新不能解决您的问题(或者您的 LMS 已经处于该补丁级别),那么您应该使用Desire2Learn 的支持台打开支持事件,并将事件描述为 LE 评估组件的可能缺陷。如果您这样做,您还应该在 Stack 上提供此问题的 URL,以便支持台知道您已经对此问题进行了一些调查。

解决方法。此问题有一个解决方法,但它可能对您不可行,具体取决于您的用例。如果您首先通过 Web UI 为用户输入成绩,那么(如果这是已知的、已修复的问题,我相信它)应该可以通过 API 更新该成绩 - 此问题仅在第一次尝试设置时适用成绩值是通过 API 执行的(而且,我相信,也只有Numeric成绩类型)。

于 2013-07-26T12:18:49.823 回答