校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > laravel開發中跨域的解決方案

laravel開發中跨域的解決方案

熱門標簽:商丘外呼系統好處 福建高頻外呼防封系統哪家好 全國各省地圖標注點 外呼系統人工客服 隨州銷售電銷機器人公司 400電話申請辦理 周口網絡回撥外呼系統 百度地圖標注類型是酒店 網絡電話400申請

前言

眾所周知我們大家在用 laravel 進行開發的時候,特別是前后端完全分離的時候,由于前端項目運行在自己機器的指定端口(也可能是其他人的機器) , 例如 localhost:8000 , 而 laravel 程序又運行在另一個端口,這樣就跨域了,而由于瀏覽器的同源策略,跨域請求是非法的。其實這個問題很好解決,只需要添加一個中間件就可以了。下面話不多說了,來隨著小編一起看看詳細的解決方案吧。

解決方案:

1、新建一個中間件

php artisan make:middleware EnableCrossRequestMiddleware

2、書寫中間件內容

?php
namespace App\Http\Middleware;
use Closure;
class EnableCrossRequestMiddleware
{
 /**
 * Handle an incoming request.
 *
 * @param \Illuminate\Http\Request $request
 * @param \Closure $next
 * @return mixed
 */
 public function handle($request, Closure $next)
 {
 $response = $next($request);
 $origin = $request->server('HTTP_ORIGIN') ? $request->server('HTTP_ORIGIN') : '';
 $allow_origin = [
  'http://localhost:8000',
 ];
 if (in_array($origin, $allow_origin)) {
  $response->header('Access-Control-Allow-Origin', $origin);
  $response->header('Access-Control-Allow-Headers', 'Origin, Content-Type, Cookie, X-CSRF-TOKEN, Accept, Authorization, X-XSRF-TOKEN');
  $response->header('Access-Control-Expose-Headers', 'Authorization, authenticated');
  $response->header('Access-Control-Allow-Methods', 'GET, POST, PATCH, PUT, OPTIONS');
  $response->header('Access-Control-Allow-Credentials', 'true');
 }
 return $response;
 }
}

$allow_origin 數組變量就是你允許跨域的列表了,可自行修改。

3、然后在內核文件注冊該中間件

 protected $middleware = [
 // more
 App\Http\Middleware\EnableCrossRequestMiddleware::class,
 ];

在 App\Http\Kernel 類的 $middleware 屬性添加,這里注冊的中間件屬于全局中間件。
然后你就會發現前端頁面已經可以發送跨域請求了。

會多出一次 method 為 options 的請求是正常的,因為瀏覽器要先判斷該服務器是否允許該跨域請求。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • Laravel獲取當前請求的控制器和方法以及中間件的例子
  • laravel請求參數校驗方法
  • 解決在Laravel 中處理OPTIONS請求的問題
  • Laravel開啟跨域請求的方法

標簽:定西 十堰 樂山 南寧 海南 迪慶 六安 佛山

巨人網絡通訊聲明:本文標題《laravel開發中跨域的解決方案》,本文關鍵詞  laravel,開發,中跨,域,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《laravel開發中跨域的解決方案》相關的同類信息!
  • 本頁收集關于laravel開發中跨域的解決方案的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 崇礼县| 商南县| 全椒县| 玛沁县| 崇礼县| 永宁县| 淮阳县| 尼勒克县| 左云县| 吉木萨尔县| 崇信县| 门源| 黑山县| 曲麻莱县| 磐安县| 南皮县| 拉萨市| 香格里拉县| 泾阳县| 湘潭县| 香河县| 土默特右旗| 武汉市| 大兴区| 固阳县| 长寿区| 松阳县| 天镇县| 绥滨县| 遂昌县| 湾仔区| 禄劝| 五原县| 蓝田县| 余江县| 灌阳县| 德庆县| 绍兴市| 西乌珠穆沁旗| 新郑市| 盖州市|