Laravel API跨域访问的实现步骤

发布时间 - 2018-10-26 00:00:00    点击率:

本篇文章给大家带来的内容是关于laravel api跨域访问的实现步骤,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

服务器A请求服务器B的接口,那么一般会出现跨域问题。

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.

意思就是服务器响应不允许跨域访问.

那我们就需要让服务器支持跨域访问, 也就是在响应头部中添加

'Access-Control-Allow-Origin: *'

第一步: 创建中间件

创建 `app/Http/Middleware/AccessControlAllowOrigin.php` middleware 把 'Access-Control-Allow-Origin: *' 写入头部.
app/Http/Middleware/AccessControlAllowOrigin.php
space 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);
    }

}

第二步: 注册路由

注册这个 middlewarekernel 中.
分别在 protected $middleware  数组中和 protected $routeMiddleware 数组中
添加我们刚才创建的那个文件class名, 使用 cors 这个别名.

第三步: 设置中间件保护接口

然后在设置它保护 api , 就是$middlewareGroups['api'] 的数组中添加它的别名, 本文中是 'cors'
app/Http/Kernel.php

 [
            \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 () {
    //
});


# laravel  # php  # 中间件  # 接口  # class  # protected  # http  # 组中  # 是在  # 也就  # 对你  # 有一定  # 给大家  # 第二步  # 第三步  # 第四步  # 分别在 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何构建RESTful API_Laravel标准化API接口开发指南  如何用花生壳三步快速搭建专属网站?  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】  如何用JavaScript实现文本编辑器_光标和选区怎么处理  如何用腾讯建站主机快速创建免费网站?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程  Laravel如何实现多对多模型关联?(Eloquent教程)  如何用PHP工具快速搭建高效网站?  如何在 React 中条件性地遍历数组并渲染元素  Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)  如何自定义建站之星网站的导航菜单样式?  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  如何在IIS中配置站点IP、端口及主机头?  教你用AI将一段旋律扩展成一首完整的曲子  如何用虚拟主机快速搭建网站?详细步骤解析  如何挑选最适合建站的高性能VPS主机?  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  油猴 教程,油猴搜脚本为什么会网页无法显示?  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  什么是javascript作用域_全局和局部作用域有什么区别?  千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音  Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】  java获取注册ip实例  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  如何在香港免费服务器上快速搭建网站?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  微信小程序 HTTPS报错整理常见问题及解决方案  如何快速生成可下载的建站源码工具?  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  如何用低价快速搭建高质量网站?  如何快速查询网站的真实建站时间?  详解jQuery中的事件  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  微信小程序 input输入框控件详解及实例(多种示例)