当我拨打电话为特定用户提供特定的等级值时,我收到了“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。这只发生在本课程中(我们知道)。
答案 0 :(得分:0)
这听起来很像一个已知的问题,Grades API在最近的过去,我认为已经解决了。此问题的修复程序随May和June Service Pack版本一起分发。解决了固定问题并以这种方式描述:
以前允许在Valence Learning Framework API中为等级除以零的案例不再允许。此问题已在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已更新至至少列出的服务包级别:
如果没有,则更新到该Service Pack级别可能会解决您的问题。
如果更新无法解决您的问题(或者您的LMS已经处于该修补程序级别),那么您应该使用Desire2Learn's support desk打开支持事件,并将事件描述为可能的缺陷LE评估组件。如果您这样做,您还应该在Stack上提供此问题的URL,以便支持部门知道您已经对此问题进行了一些调查。
解决方法即可。此问题有一个解决方法,但根据您的使用情况,它可能不适用于您。如果您首先通过Web UI为用户输入成绩,那么(如果这是已知的,我认为已修复的问题)通过API更新该成绩应该有效 - 此问题仅在首次尝试设置时应用通过API执行成绩值(我相信,也仅适用于Numeric
成绩类型)。