Permalink
Browse files

MDL-39810 Files: IE doesn't recognize JSON MIME Type (RFC4627).

Affected versions:
- IE 8+, under Compatibility View.
  • Loading branch information...
1 parent 67d4599 commit 47e52bfdca86120cd2ec0d613e14007ec3d50ffe @scara scara committed Jun 11, 2013
Showing with 10 additions and 0 deletions.
  1. +10 −0 lib/outputrenderers.php
View
@@ -3344,9 +3344,19 @@ public function redirect_message($encodedurl, $message, $delay, $debugdisablered
* Prepares the start of an AJAX output.
*/
public function header() {
+ // MDL-39810: IE doesn't support JSON MIME type if version < 8 or when it runs in Compatibility View.
+ $supports_json_contenttype = !check_browser_version('MSIE') ||
+ (check_browser_version('MSIE', 8) &&
+ !(preg_match("/MSIE 7.0/", $_SERVER['HTTP_USER_AGENT']) && preg_match("/Trident\/([0-9\.]+)/", $_SERVER['HTTP_USER_AGENT'])));
// unfortunately YUI iframe upload does not support application/json
if (!empty($_FILES)) {
@header('Content-type: text/plain; charset=utf-8');
+ if (!$supports_json_contenttype) {
+ @header('X-Content-Type-Options: nosniff');
+ }
+ } else if (!$supports_json_contenttype) {
+ @header('Content-type: text/plain; charset=utf-8');
+ @header('X-Content-Type-Options: nosniff');
} else {
@header('Content-type: application/json; charset=utf-8');
}

0 comments on commit 47e52bf

Please sign in to comment.