2017-01-05 3 views
2

Ich habe dieses Stück Vue.js:CORS für Post-Anforderung

... 
this.$http.post('http://localhost:8000/oauth/token', postData) 
    .then(response => { 
    console.log(response) 
}) 
this.$http.get('http://localhost:8000/api/test') 
    .then(response => { 
    console.log(response) 
}) 
... 

Die letzten Erhaltungs-Anforderungs funktionieren gut, aber die Post geht nicht durch wegen

XMLHttpRequest kann nicht geladen werden http://localhost:8000/oauth/token. Die Antwort auf die Preflight-Anforderung übergibt die Zugriffskontrollprüfung nicht: Auf der angeforderten Ressource ist kein Header "Access-Control-Allow-Origin" vorhanden. Origin ...

My Cors.php Middleware:

... 
public function handle($request, Closure $next) 
{ 
    return $next($request) 
     ->header('Access-Control-Allow-Origin', '*') 
     ->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); 
} 
... 

Kernel.php:

... 

    'api' => [ 
     'throttle:60,1', 
     'bindings', 
     \App\Http\Middleware\Cors::class, 
    ], 
... 

ich getan habe php artisan route:list ich bemerkt, dass die Route ...oauth/token hat die Middleware throttle, es ist das einzige standardmäßig ... Ich folge https://laravel.com/docs/5.3/passport#installation

Beide (cli ent/Server) laufen auf localhost

+0

Versuchen Sie, die Middleware in die Web-Middleware-Gruppe anstelle der api ein – Hammerbot

+0

@El_Matella, dann die zwei registrieren Anfragen scheitern. Ich habe eine 'php artisan route: list' gemacht und diese Route nur Middleware ist' gascross' – Miguel

+0

Und wenn Sie es global registrieren? – Hammerbot

Antwort

0

versuchen Sie verwenden vue-Ressource Angenommen, Ihr Anruf in der Registerkarte Netzwerk das Debuggen von devtools.

Wenn keine CORS-Header vorhanden sind in Request Header diese Zeile irgendwo setzen Tab nach dem Vue.use(VueResource): Vue.http.options.crossOrigin = true