FIX: Ignore charset when checking mime types in LeftAndMain ajax responses.

This is partly a fix to #7574, although quite different from the work Ingo did on Content-length.  The text/json mime type occasionally gets a charset suffixed to it by the webserver, which broke everything.

A follow-on fix from this would be to get the PHP code to supply charsets more consistently, so that webservers don't have to make things up.

Additionally, the 2nd interpretation - which treats the response as text/html - should probably only happen if the response is text/html, and throw a more helpful error otherwise.
This commit is contained in:
Sam Minnee 2012-09-30 16:32:22 +13:00
parent 1a1740e563
commit 28bd939580

View File

@ -379,7 +379,8 @@ jQuery.noConflict();
if(title) document.title = title; if(title) document.title = title;
var newFragments = {}, newContentEls; var newFragments = {}, newContentEls;
if(xhr.getResponseHeader('Content-Type') == 'text/json') { // If content type is text/json (ignoring charset and other parameters)
if(xhr.getResponseHeader('Content-Type').match(/^text\/json[ \t]*;?/i)) {
newFragments = data; newFragments = data;
} else { } else {
// Fall back to replacing the content fragment if HTML is returned // Fall back to replacing the content fragment if HTML is returned