2017-09-05 3 views
2

Wir verwenden das vue-bulma-admin Scaffold für ein Projekt, das bereits webpack verwendet, und wir können anscheinend keine POST/PUT-Anfragen an unsere API senden (die bereits access-cross-allow-origin setzt) Header zu *), funktioniert nur GET-Anfragen. Von verschiedenen Frontends, die unsere API verbraucht, haben wir dieses Problem nicht, nur mit diesem speziellen Front-End, die als dieser gemeinsamen Fehler gibt:Probleme mit CORS mit vue

"No 'Access-Control-Allow-Origin' header is present on the requested resource."

Response to preflight request doesn't pass access control check: 
No 'Access-Control-Allow-Origin' header is present on the requested 
resource. 

Wir haben bereits versucht, benutzerdefinierte Header zu setzen auf axios/vue-resource, aber ohne Erfolg. Wie ich schon sagte, mit den gleichen Routen durch Postman/verschiedene Front-Ends oder mit der CORS Chrome-Erweiterung funktioniert alles gut.

Irgendwelche Ideen um dies zu umgehen?

Meine Middleware Cors in Laravel API.

<?php 

namespace App\Http\Middleware; 

use Closure; 

class Cors 
{ 
    /** 
    * Handle an incoming request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Closure $next 
    * @return mixed 
    */ 
    public function handle($request, Closure $next) 
    { 
     return $next($request) 
      ->header('Access-Control-Allow-Origin', '*') 
      ->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); 
    } 
} 
+0

Sie Access-Control-Allow-Methoden auch Sie eingestellt? – Nora

+0

Ich habe meine Frage damit bearbeitet. –

+0

Es hört sich so an, als ob Ihr POST mindestens einen Header (wahrscheinlich den Content-Type-Header?) Hinzufügt, der Ihren Browser dazu veranlasst, automatisch eine CORS-Preflight-OPTIONS-Anfrage https://developer.mozilla.org/de durchzuführen -US/docs/Web/HTTP/Zugriffssteuerung_CORS # Preflighted_requests Und es scheint, dass der Back-End-Code dieses Servers nicht konfiguriert ist, um den Access-Control-Allow-Origin-Header für OPTIONS-Anforderungen zu senden. Es muss so konfiguriert sein, dass es auf OPTIONS-Anfragen mit einem 200 OK-Befehl und den Kopfzeilen Access-Control-Allow-Headers und Access-Control-Allow-Methods mit den richtigen Werten antwortet. – sideshowbarker

Antwort