From a6d5cb71a69b0296222a0a43fa18279e98686d12 Mon Sep 17 00:00:00 2001 From: elij Date: Sun, 27 Sep 2009 16:43:38 -0700 Subject: fix content-type when sending jsonp jsonp callback should have a content type of text/javascipt, since it specifies a callback function wrapping json data, and is not soley json data. Signed-off-by: Loui Chang --- web/lib/aurjson.class.php | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'web/lib/aurjson.class.php') diff --git a/web/lib/aurjson.class.php b/web/lib/aurjson.class.php index befb639..06247eb 100644 --- a/web/lib/aurjson.class.php +++ b/web/lib/aurjson.class.php @@ -11,7 +11,7 @@ if (!extension_loaded('json')) { include_once("aur.inc"); /** - * This class defines a remote interface for fetching data + * This class defines a remote interface for fetching data * from the AUR using JSON formatted elements. * @package rpc * @subpackage classes @@ -28,9 +28,6 @@ class AurJSON { * @return string The JSON formatted response data. **/ public function handle($http_data) { - // set content type header to json - header('content-type: application/json'); - // handle error states if ( !isset($http_data['type']) || !isset($http_data['arg']) ) { return $this->json_error('No request type/data specified.'); @@ -47,9 +44,14 @@ class AurJSON { // allow rpc callback for XDomainAjax if ( isset($http_data['callback']) ) { + // it is more correct to send text/javascript + // content-type for jsonp-callback + header('content-type: text/javascript'); return $http_data['callback'] . "({$json})"; } else { + // set content type header to app/json + header('content-type: application/json'); return $json; } } @@ -65,6 +67,8 @@ class AurJSON { * @return mixed A json formatted error response. **/ private function json_error($msg){ + // set content type header to app/json + header('content-type: application/json'); return $this->json_results('error',$msg); } -- cgit v1.2.3-54-g00ecf