Drupal and JQuery 1.5: Fixing the JSON encoding of ampersands
Drupal 6′s drupal_json method encodes ampersands incorrectly for JQuery 1.5, causing the rather cryptic error:
Uncaught Syntax error, unrecognized expression: ...
(If you’re lucky.)
The way to fix this is to borrow the JSON-handling code from Drupal 7. Here’s something you might be able to use:
function yourmodule_json_encode($var) {
return str_replace(array('<', '>', '&'), array('\u003c', '\u003e', '\u0026'), $var);
}
// Fix Drupal JSON problems from http://witti.ws/blog/2011/03/14/jquery-15-json-parse-error
function yourmodule_json($var) {
drupal_set_header('Content-Type: text/javascript; charset=utf-8');
if (isset($var)) {
echo yourmodule_json_encode(json_encode($var));
}
}
Use yourmodule_json instead of drupal_json wherever applicable.
Hat tip to Greg Payne (Witti) for pointing me in the right direction!
2011-08-04 Thu 14:01
Short URL: http://sachachua.com/blog/p/22402-
catch
-
mikeytown2
-
http://www.innoraft.com Mukesh
-
http://sachachua.com Sacha Chua
I'm 