J'ai un backend laravel et un site web sur react/redux. Je suis en train de passer mon jeton JWT sur une URL spécifique de mon frontend en utilisant superagent-bluebird-promis e mais je continue à obtenirDéfinir l'en-tête d'autorisation dans Laravel
Non « Access-Control-Allow-Origin » en-tête est présent sur la ressource demandée
erreur. J'ai regardé chaque article mais je n'ai pas pu le comprendre. Voici le code sur mon frontend:
import request from 'superagent-bluebird-promise'
......
requestPromise= request.get(API_URL + action.url);
if(action.token)
requestPromise.set("Authorization","Bearer "+ action.token).withCredentials();
requestPromise.query({ // add query (if get)
...action.data,
});
Sur mon Laravel j'ai cette .htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule^index.php [L]
et j'ai aussi un middleware CORS pour permettre à cette tête qui il ne fait jamais ici pour ce code pour exécuter:
public function handle($request, Closure $next)
{
$origin = 'https://mywebsite.com';
return $next($request)
->header('Access-Control-Allow-Origin', $origin)
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')
->header('Access-Control-Allow-Headers','Authorization')
->header('Access-Control-Allow-Credentials','true');
;
}
Je suis aussi courir ma larcade i n docker/nginx réglage si aide à