2017-09-05 115 views
2

我們正在使用的一個項目,該項目已經使用的WebPack的vue-bulma-admin支架,我們似乎無法執行任何POST/PUT請求我們的API(已設置訪問交叉允許來源CORS問題頭文件*),只有GET請求的作品。從消耗我們的API不同的前端,我們沒有這個問題,只能用這種特定的前端,這讓因爲這常見的錯誤:使用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. 

我們已經嘗試設置自定義頁眉在axios/vue-resource,但沒有成功。正如我所說的,通過Postman /不同的前端或CORS chrome擴展使用相同的路線,一切正常。

任何想法,以解決此問題?

我中間件一個Cors在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

你還設置訪問控制允許的方法解決我的問題? – Nora

+0

我用它編輯了我的問題。 –

+0

這聽起來像你的帖子添加至少一個頭(可能是Content-Type頭?),這將觸發你的瀏覽器,它自己自動,做一個CORS預檢OPTIONS請求https://developer.mozilla.org/en -US/docs/Web/HTTP/Access_control_CORS#Preflighted_requests該服務器的後端代碼未配置爲發送OPTIONS請求的Access-Control-Allow-Origin標頭。必須將它配置爲使用200 OK和Access-Control-Allow-Headers和Access-Control-Allow-Methods標頭以正確的值響應OPTIONS請求。 – sideshowbarker

回答