2017-08-29 72 views
0

我創建了Laravel的API和我嘗試用離子2項目Laravel API和離子2客戶端:CORS否「訪問控制允許來源」頭

我試圖讓使用它GET請求到我的Laravel API。

當我把我的http請求

auth/{prodiver}/callback/{userID}/{accessToken} 

我得到這個錯誤:

Failed to load http://api.url.net/api/auth/facebook/callback/XXXX/MY_TOKEN: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8001' is therefore not allowed access.

我的路線是這樣的:

Route::group(['middleware' => ['guest', 'cors']], function() { 
    Route::get('test', function() { 
     return response()->json('{dummy.data}', 200); 
    }); 

    Route::get('auth/{prodiver}/callback/{userID}/{accessToken}', '[email protected]')->middleware('cors')->name('social.auth'); // social auth 
}); 

但是,當我嘗試相同的代碼,與路線test,它的工作原理和我得到的數據...

「Facebook連接」不是問題,成功回調觸發。

這裏是callback()方法

public function callback($provider, $userID, $accessToken) 
{ 
    if ($provider == "facebook"){ 
     $user = $this->createOrGetUser($userID, $accessToken); 
     auth()->login($user); 
     return response()->json($user, 200); 
    } 
} 

其他所有的http請求的作品完美...

下面是有關http請求(離子項目)

let headers = new Headers(); 
headers.append('Content-Type', 'application/json'); 
let url = this.baseApiUrl+'auth/facebook/callback/' + userID + '/' + accessToken; 
this.http 
    .get(url, {headers: headers}) 
    .map(res => res.json()) 
    .subscribe(data => { 
      console.log(data) 
     }, err => { 
      this.onError(err); 
     } 
    ); 

我不不知道發生了什麼,任何人都有線索?我完全厭倦了這個錯誤:/

非常感謝! :)

+0

你剛纔提到'cors'中間件。你使用什麼軟件包,'barryvdh/laravel-cors'?你配置正確嗎? –

+0

是的,我讓配置到處都是「*」,用於開發... – Doddo

+1

[No'Access-Control-Allow-Origin'頭文件可能重複 - Laravel 5.4](https://stackoverflow.com/questions/43565877/no-access-control-allow-origin-header-laravel-5-4) – Demonyowh

回答

1

首先,爲什麼在定義第二條路線時設置了cors中間件?它已經爲整個小組設置。

其次,cors返回cors錯誤,以防您的代碼出現錯誤,這是它的行爲。

When an error occurs, the middleware isn't run completely. So when this happens, you won't see the actual result, but will get a CORS error instead.

嘗試調試您的代碼以查找錯誤。測試返回數據,這意味着這不是cors誰給出的錯誤,它是你的代碼。

+0

嗨,謝謝你的回答。 我把CORS中間件放在路由和組上,只是爲了試一下,以確保中間件是「活動的」... 我會檢查我的代碼來找到一個錯誤,謝謝:) – Doddo

+0

你在哪裏中間件的權利!我的腳本中有一個錯誤...但是我現在遇到了「預檢請求」的其他問題...:/ – Doddo

相關問題