Ensure headers are set correctly for json output
authorColeman Watts <coleman@civicrm.org>
Thu, 5 Jun 2014 21:38:43 +0000 (22:38 +0100)
committerColeman Watts <coleman@civicrm.org>
Thu, 5 Jun 2014 21:38:43 +0000 (22:38 +0100)
CRM/Core/Page/AJAX.php

index 5e7ac4eb669213b19722724f5af26929ac26dac4..593beb5f3cc3a4569db118827e07f68e6f77cfb3 100644 (file)
@@ -186,16 +186,16 @@ class CRM_Core_Page_AJAX {
     if ($session->getStatus(FALSE)) {
       $response['crmMessages'] = $session->getStatus(TRUE);
     }
+    $output = json_encode($response);
 
     // CRM-11831 @see http://www.malsup.com/jquery/form/#file-upload
-    $xhr = isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest';
-    if (!$xhr) {
-      echo '<textarea>';
+    if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
+      header('Content-Type: application/json');
     }
-    echo json_encode($response);
-    if (!$xhr) {
-      echo '</textarea>';
+    else {
+      $output = "<textarea>$output</textarea>";
     }
+    echo $output;
     CRM_Utils_System::civiExit();
   }