今天剛好有碰到同事提到cross site
的問題,這好像是蠻多人的困擾。
雖然網路上很多文章,但這邊也順便來紀錄一下自已的做法。
目前大家的開發習慣,大部份都前後端分開了,所以跨網域的問題就隨之而來。
其實我自已設定起來蠻簡單,也蠻直覺的。主要分為:前端設定、後端設定
Access-Control-Allow-Origin": http://localhost:3000
Access-Control-Allow-Methods": "GET, PUT, POST, DELETE, OPTIONS
Allow-Methods
設定可以進行溝通的methodsAccess-Control-Max-Age": "86400
"Access-Control-Allow-Origin": http://localhost:3000,
"Access-Control-Allow-Methods": "GET, PUT, POST, DELETE, OPTIONS",
"Access-Control-Max-Age": "86400"
composer require barryvdh/laravel-cors
app/Http/Kernel.php
注入 \Barryvdh\Cors\HandleCors::class
php artisan vendor:publish --provider="Barryvdh\Cors\ServiceProvider"
cors.php
在 config的目錄下(如下)<?php
return [
/*
|--------------------------------------------------------------------------
| Laravel CORS
|--------------------------------------------------------------------------
|
| allowedOrigins, allowedHeaders and allowedMethods can be set to array('*')
| to accept any value.
|
*/
'supportsCredentials' => false,
'allowedOrigins' => ['http://localhost:8080'], //假設來源DNS
'allowedOriginsPatterns' => [],
'allowedHeaders' => ['*'],
'allowedMethods' => ['*'],
'exposedHeaders' => [],
'maxAge' => 86400,
];
其實不管是什麼語言,設定的概念應該都會雷同
詳細內容我就是參考這篇。
相信這類的設定會因為Devops的概念而越來越重要。