code: def _handle_wrapper(self):
      
      if self.request.headers.get("X-Requested-With") != "XMLHttpRequest":
        logging.error("Got JSON request with no X-Requested-With header")
        self.response.set_status(
            403, message="Got JSON request with no X-Requested-With header")
        return
  
      self.json_response.clear()
      try:
        self.handle()
      except errors.MissingYamlError:
        logging.debug("Could not find 'mapreduce.yaml' file.")
        self.json_response.clear()
        self.json_response["error_class"] = "Notice"
        self.json_response["error_message"] = "Could not find 'mapreduce.yaml'"
      except Exception, e:
        logging.exception("Error in JsonHandler, returning exception.")
        # TODO(user): Include full traceback here for the end-user.
        self.json_response.clear()
        self.json_response["error_class"] = e.__class__.__name__
        self.json_response["error_message"] = str(e)
  
      self.response.headers["Content-Type"] = "text/javascript"
      try:
        output = json.dumps(self.json_response, cls=json_util.JsonEncoder)
      # pylint: disable=broad-except
      except Exception, e:
        logging.exception("Could not serialize to JSON")
        self.response.set_status(500, message="Could not serialize to JSON")
        return
      else:
        self.response.out.write(output)
docs: The helper method for handling JSON Post and Get requests.