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

Affected versions:
- IE 8+, under Compatibility View.
This commit is contained in:
Matteo Scaramuccia
2013-10-27 07:58:51 +01:00
parent 67d4599aff
commit 47e52bfdca
+10
View File
@@ -3344,9 +3344,19 @@ class core_renderer_ajax extends core_renderer {
* 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');
}