下面由Laravel框架教程欄目給大家介紹Laravel API允許跨域訪問,希望對需要的朋友有所幫助!
服務(wù)器A請求服務(wù)器B的接口,那么一般會出現(xiàn)跨域問題。全解跨域請求處理辦法
XMLHttpRequest cannot load http://api.console.vms3.com/api/user. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' istherefore not allowed access.
意思就是服務(wù)器響應(yīng)不允許跨域訪問.
那我們就需要讓服務(wù)器支持跨域訪問, 也就是在響應(yīng)頭部中添加
"'Access-Control-Allow-Origin: *' "
第一步: 創(chuàng)建中間件創(chuàng)建 `app/Http/Middleware/AccessControlAllowOrigin.php` middleware 把 'Access-Control-Allow-Origin: *' 寫入頭部. app/Http/Middleware/AccessControlAllowOrigin.php <?php namespace App\\Http\\Middleware; use Closure; use Illuminate\\Support\\Facades\\Auth; class AccessControlAllowOrigin { /** * * Handle an incoming request. * * @param \\Illuminate\\Http\\Request $request * @param \\Closure $next * @return mixed */ public function handle($request, Closure $next) { header('Access-Control-Allow-Origin: *'); header("Access-Control-Allow-Credentials: true"); header("Access-Control-Allow-Methods: *"); header("Access-Control-Allow-Headers: Content-Type,Access-Token"); header("Access-Control-Expose-Headers: *"); return $next($request); } }第二步: 注冊路由
注冊這個 middleware
到 kernel
中.
分別在 protected $middleware
數(shù)組中和protected $routeMiddleware
數(shù)組中
添加我們剛才創(chuàng)建的那個文件class
名, 使用 cors
這個別名.
然后在設(shè)置它保護(hù) api , 就是$middlewareGroups['api']
的數(shù)組中添加它的別名, 本文中是 'cors'
app/Http/Kernel.php
<?php namespace App\\Http; use Illuminate\\Foundation\\Http\\Kernel as HttpKernel; class Kernel extends HttpKernel { /** * The application's global HTTP middleware stack. * * These middleware are run during every request to your application. * * @var array */ protected $middleware = [ \\Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode::class, \\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize::class, \\App\\Http\\Middleware\\TrimStrings::class, \\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull::class, \\App\\Http\\Middleware\\AccessControlAllowOrigin::class, ]; /** * The application's route middleware groups. * * @var array */ protected $middlewareGroups = [ 'web' => [ \\App\\Http\\Middleware\\EncryptCookies::class, \\Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse::class, \\Illuminate\\Session\\Middleware\\StartSession::class, // \\Illuminate\\Session\\Middleware\\AuthenticateSession::class, \\Illuminate\\View\\Middleware\\ShareErrorsFromSession::class, \\App\\Http\\Middleware\\VerifyCsrfToken::class, \\Illuminate\\Routing\\Middleware\\SubstituteBindings::class, ], 'api' => [ 'throttle:60,1', 'bindings', 'cors' ], ]; /** * The application's route middleware. * * These middleware may be assigned to groups or used inpidually. * * @var array */ protected $routeMiddleware = [ 'auth' => \\Illuminate\\Auth\\Middleware\\Authenticate::class, 'auth.basic' => \\Illuminate\\Auth\\Middleware\\AuthenticateWithBasicAuth::class, 'bindings' => \\Illuminate\\Routing\\Middleware\\SubstituteBindings::class, 'can' => \\Illuminate\\Auth\\Middleware\\Authorize::class, 'guest' => \\App\\Http\\Middleware\\RedirectIfAuthenticated::class, 'throttle' => \\Illuminate\\Routing\\Middleware\\ThrottleRequests::class, 'cors' => \\App\\Http\\Middleware\\AccessControlAllowOrigin::class, ]; }第四步:在路由中添加路由
Route::middleware('cors')->group(function () { // });
網(wǎng)頁題目:詳解LaravelAPI允許跨域訪問
標(biāo)題網(wǎng)址:http://jinyejixie.com/article28/cphpjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、移動網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)、Google、面包屑導(dǎo)航、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)