[Perl] CORS et Dancer2

Patrice Karatchentzeff patrice.karatchentzeff at gmail.com
Lun 5 Juin 09:52:04 CEST 2023


Salut,

J'ai un truc bizarre avec Dancer2. J'ai besoin d'autoriser CORS et
pour le dév, je le mets à tout le monde (*) pour ne pas me prendre la
tête. Dancer2 est pour le back-end et j'ai un front-end en javascript
(React Native)/

Le plus simple est de faire un hook avant une route :

hook 'before' => sub {
    response_header 'Access-Control-Allow-Origin' => '*';
};

Si je veux lire un JSON sur le serveur (GET), ça fonctionne.

get '/message' => sub {
  my @data = ( {
        id       => 1,
        username => 42,
        name     => 100234,
        email    => [qw(one two three)],
           },
           {
        id       => 2,
        username => "toto",
        name     => "SiSi",
        email    => [qw(4 5 6)],
           },
         );
  send_as JSON => \@data;
  };

Si je veux en envoyer un (POST), le débogueur m'indique que la requête
est interdite, parce que CORS n'est pas actif !

get '/login' => sub {
  my $post = from_json( request->body );
  print $post;
};

J'ai essayé de généraliser avec Plack :

use Plack::Builder;

builder {
    enable 'CrossOrigin', origins => '*';
    dance;
};

Mais ça ne fonctionne pas mieux :(

Est-ce que vous avez une piste pour me dépanner ?

Merci

PK

-- 
      |\      _,,,---,,_           Patrice KARATCHENTZEFF
ZZZzz /,`.-'`'    -.  ;-;;,_   mailto:patrice.karatchentzeff at gmail.com
     |,4-  ) )-,_. ,\ (  `'-'
    '---''(_/--'  `-'\_)


Plus d'informations sur la liste de diffusion Perl