/** * Handles the OPTIONS request * @param DAV_Resource $resource * @return void * @throws DAV_Status */ protected function handle($resource) { $headers = array('DAV' => array('1' . (DAV::$LOCKPROVIDER ? ', 2' : '') . ', 3', 'access-control', '<http://apache.org/dav/propset/fs/1>'), 'MS-Author-Via' => 'DAV', 'Allow' => implode(', ', self::$ALLOWED_METHODS), 'Content-Length' => 0); if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD'])) { $headers['Access-Control-Allow-Methods'] = $_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']; } if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'])) { $headers['Access-Control-Allow-Headers'] = $_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']; } if ($resource instanceof DAV_Resource) { DAV::header($resource->method_OPTIONS($headers)); } else { DAV::header($headers); } }