Method request
I want to submit a nice request ( i think ) For now in methods we have: GET POST etc... i want to be added one more "XHR" or "Ajax" and this one can be accepted only ajax requests. Now my controllers with ajax must be like this:
if(parent::is_ajax()) {
//my code
}
is_ajax function is:
public function is_ajax() {
return (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
}
I need this to be added and my routers will be:
$collection->attachRoute(new PHPRouter\Route('/', [
'_controller' => 'App\Controllers\Index::Index',
'methods' => 'AJAX',
'parameters'=> ['template_file'=>'index'],
]));
instead
$collection->attachRoute(new PHPRouter\Route('/', [
'_controller' => 'App\Controllers\Index::Index',
'methods' => 'GET',
'parameters'=> ['template_file'=>'index'],
]));
is this possible ?
In my opinion AJAX cannot be a HTTP Method, since you can use any of POST,GET,DELETE,PUT,... method in your ajax call, PHP-Router would not be able to distinguish POST or DELETE for example.
I think AJAX should be included in another set of caller constraint, wich could be :
- XHR call only
- HTTPS only
- USER Agent only (with regex or http://php.net/manual/fr/function.fnmatch.php )
- or any other $_SERVER data wich represent the client.
a route could be then : method: POST, XHR only, HTTPS only
This will be cool. I'm waiting for update :)