《laravel如何開啟跨域功能示例詳解PHP實例:》要點:
本文介紹了laravel如何開啟跨域功能示例詳解PHP實例:,希望對您有用。如果有疑問,可以聯系我們。
前言PHP應用
本文主要給大家介紹了關于laravel開啟跨域功能的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧.PHP應用
跨域的請求PHP應用
出于安全性的原因,瀏覽器會限制 Script 中的跨域請求.由于 XMLHttpRequest 遵循同源策略,所有使用 XMLHttpRequest 構造 HTTP 請求的應用只能訪問自己的域名,如果需要構造跨域的請求,那么開發者需要配合瀏覽器做出一些允許跨域的配置.PHP應用
W3C 應用工作組推薦了一種跨資源共享的機制,這種機制讓 Web 應用服務器能支持跨站訪問控制,從而使得安全的進行跨站數據傳輸成為可能,該機制通過幾種方式來對原有模式進行了擴展:PHP應用
跨源資源共享標準PHP應用
跨源資源共享標準通過新增一系列 HTTP 頭,讓服務器能聲明哪些來源可以通過瀏覽器訪問該服務器上的資源.另外,對哪些會對服務器數據造成破壞性響應的 HTTP 請求方法(特別是 GET 以外的 HTTP 方法,或者搭配某些 MIME 類型的 POST 請求),標準強烈要求瀏覽器必須先以 OPTIONS 請求方式發送一個預請求(preflight request),從而獲取知服務器端對跨源請求所支持 HTTP 方法.在確認服務器允許跨源請求的情況下,以實際的 HTTP 請求方法發送那個真正的請求.服務器端也可以通知客戶端,是不是需要隨同請求一起發送信用信息(包括 Cookies 和 HTTP 認證相關數據).
PHP應用
跨源共享標準需要瀏覽器和服務端共同配合才能完成,目前瀏覽器廠商已經可以將請求部分自動完成,所以跨源資源訪問的重點還是在于服務器端.PHP應用
下面列出一些標準中可用的響應頭和請求頭.PHP應用
Response HeaderPHP應用
Request HeaderPHP應用
中間件PHP應用
在 Laravel 中允許跨域請求,我們可以構建一個追加響應的中間件,用來添加專門處理跨域的請求的響應頭:PHP應用
<?php namespace App\Http\Middleware; use Closure; use Response; 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); $response->header('Access-Control-Allow-Origin', config('app.allow')); $response->header('Access-Control-Allow-Headers', 'Origin, Content-Type, Cookie, Accept'); $response->header('Access-Control-Allow-Methods', 'GET, POST, PATCH, PUT, OPTIONS'); $response->header('Access-Control-Allow-Credentials', 'true'); return $response; } }
其中有以下需要注意的地方:PHP應用
總結PHP應用
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持.
PHP應用
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/197.html