You are here

function js_http_response in JS Callback Handler 7.2

Sets the HTTP response code for JS requests.

Parameters

int $code: (optional) The HTTP response code to use. Defaults to: 200 OK.

Return value

array An associative array with the key "response"; containing:

  • code: The response code set.
  • message: The corresponding response code message.
3 calls to js_http_response()
js_deliver_json in includes/json.inc
Callback for delivering JSON responses to the browser.
js_drupal_goto_alter in ./js.module
Implements hook_drupal_goto_alter().
_js_log_php_error in ./js.module
Logs a PHP error or exception and displays the error in fatal cases.

File

includes/common.inc, line 39
Common functions used in any JS request.

Code

function js_http_response($code = 200) {
  static $codes = array(
    100 => 'Continue',
    101 => 'Switching Protocols',
    200 => 'OK',
    201 => 'Created',
    202 => 'Accepted',
    203 => 'Non-Authoritative Information',
    204 => 'No Content',
    205 => 'Reset Content',
    206 => 'Partial Content',
    300 => 'Multiple Choices',
    301 => 'Moved Permanently',
    302 => 'Found',
    303 => 'See Other',
    304 => 'Not Modified',
    305 => 'Use Proxy',
    307 => 'Temporary Redirect',
    400 => 'Bad Request',
    401 => 'Unauthorized',
    402 => 'Payment Required',
    403 => 'Forbidden',
    404 => 'Not Found',
    405 => 'Method Not Allowed',
    406 => 'Not Acceptable',
    407 => 'Proxy Authentication Required',
    408 => 'Request Time-out',
    409 => 'Conflict',
    410 => 'Gone',
    411 => 'Length Required',
    412 => 'Precondition Failed',
    413 => 'Request Entity Too Large',
    414 => 'Request-URI Too Large',
    415 => 'Unsupported Media Type',
    416 => 'Requested Range Not Satisfiable',
    417 => 'Expectation Failed',
    500 => 'Internal Server Error',
    501 => 'Not Implemented',
    502 => 'Bad Gateway',
    503 => 'Service Unavailable',
    504 => 'Gateway Time-out',
    505 => 'HTTP Version Not Supported',
  );
  if (!array_key_exists($code, $codes)) {

    // If this occurs, it's a programming error. Immediately throw a fatal error
    // so it can be quickly identified and fixed.
    throw new Exception(t('Invalid HTTP response code: @code', array(
      '@code' => $code,
    )));
  }
  drupal_add_http_header('Status', $code . ' ' . $codes[$code]);

  // Return the status code and message as an associative array.
  return array(
    'response' => array(
      'code' => $code,
      'message' => $codes[$code],
    ),
  );
}