diff --git a/common/djangoapps/util/json_request.py b/common/djangoapps/util/json_request.py index 391905e574..169a7e3fb4 100644 --- a/common/djangoapps/util/json_request.py +++ b/common/djangoapps/util/json_request.py @@ -6,7 +6,9 @@ import json def expect_json(view_function): @wraps(view_function) def expect_json_with_cloned_request(request, *args, **kwargs): - if request.META['CONTENT_TYPE'] == "application/json": + # cdodge: fix postback errors in CMS. The POST 'content-type' header can include additional information + # e.g. 'charset', so we can't do a direct string compare + if request.META['CONTENT_TYPE'].lower().startswith("application/json"): cloned_request = copy.copy(request) cloned_request.POST = cloned_request.POST.copy() cloned_request.POST.update(json.loads(request.body))