Thank you very much for posting the solution - we encountered the same issue of the server returning text/json;charset=UTF-8 for JSON responses. And your patch works.
Just wondering, have you submitted a pull-request for this fix?
I'm surprised more people aren't encountering this issue. Also, the description in [url=http://open.silverstripe.org/ticket/7708]Trac ticket #7708[/url] doesn't quite seem to match up with what I was experiencing... content area wouldn't appear if any link, either on the left hand menu or the site tree were clicked. Would only appear after a full refresh. I guess that makes sense, as a full refresh isn't a JSON request and the issue is related to the JSON response Content-Type.
After switching to nginx/php54-fpm configuration and upgrading to the latest silverstripe release (3.0.3) I have found a new problem with in the admin-section of Silverstripe. I think, it is related because the output in the browser is the same as posted some months ago (also see screenshot). Loading the "Products" -Tab admin-section is no problem until clicking within the form and thus firing a xhr request. Using firebug I found that the content-type of the returned data is set to text/html even though the returned content is json encoded. I alreday extended the mime.types of the nginx-configuration but had no luck. reloading the whole page fixes the prolem.
Can anyone tell where and if the content-type of the ajax-response is set within ModelAdmin? Or is there a problem with the nginx configuration? I have made a copy from http://sspaste.com/paste/show/505bf25860775