2017-07-03 10 views
0

ブラウザがGET/POSTリクエストの代わりにOPTIONSリクエストをクロスドメインに送信しています。角でGET/POSTの代わりに 'OPTIONS'リクエストを送信しているブラウザ4

return $next($request) 
     ->header('Access-Control-Allow-Origin', '*') 
     ->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); 

api.php(ルート):

Route::group(['middleware' => ['cors']], function(){ 
    Route::post('login', '[email protected]'); 
    Route::post('register', '[email protected]'); 
    Route::post('userInfo', '[email protected]_user_details'); 
}); 
を私はrouteMiddlewareでCORSを追加しました私は、バックエンドのためLaravel 5.4を使用していますし、フロントエンドのために私は角4

を使用しています

可能な解決策は何でしょうか?

答えて

2

ブラウザは常にOPTIONSリクエストを送信しています。これは実際にセキュリティ測定であるプリフライトリクエストです。サーバがこの要求を理解し、200コードで応答すると、ブラウザは実際のリクエスト(実際のメソッドGET、POSTなど)をサーバに送信します。

サーバーは、プリフライトリクエスト(OPTIONSメソッドを使用したリクエスト)で返信する方法を理解する必要があります。ここで

あなたは、これがnodeJSサーバで達成することができる方法を見つけることができます

module.exports = function(req, res, next) { 
    res.header("Access-Control-Allow-Origin", "*"); 
    res.header("Access-Control-Allow-Headers", "*"); 
    res.header("Access-Control-Allow-Methods", "GET, POST", "PUT", "DELETE"); 

    next(); 
}; 
関連する問題