Lumen跨域问题,PHP CORS Middleware
前导
本篇文字作为?《「新轮子」PHP CORS (Cross-origin resource sharing),解决 PHP 项目程序设置跨域需求。》的续篇。
简介
什么是 medz/cors?这个中间件的全名叫做 「PHP CORS Middleware」,专门用来处理基于 PHP 程序的 CORS 信息问题,主要针对在 PHP 程序中设置跨域信息的支持。
安装
得益于 Composer,现在我们安装变得很简单,请在你的 Lumen 项目中执行:
composer require medz/cors
配置
请参考《配置参考》,然后在你的 Lumen 项目下创建 config/cors.php 文件,其中内容如下:
<?php
return [
'allow-credentiails' => env('CORS_ALLOW_CREDENTIAILS', false), // set "Access-Control-Allow-Credentials" ? string "false" or "true".
'allow-headers' => ['*'], // ex: Content-Type, Accept, X-Requested-With
'expose-headers' => [],
'origins' => ['*'], // ex: http://localhost
'methods' => ['*'], // ex: GET, POST, PUT, PATCH, DELETE
'max-age' => env('CORS_ACCESS_CONTROL_MAX_AGE', 0),
];
注册服务
现在,请打开 bootstrap/app.php 文件,添加如下代码:
$app->configure('cors'); // 如果想 `config/cors.php` 的配置生效,请务必添加这行代码!如果没有添加,则使用默认配置。
$app->register(Medz\Cors\Lumen\ServiceProvider::class);
好了,现在请配置完成后进行跨域使用吧,因为 Lumen 的定位为轻量级的 API 框架,所以在 medz/cors 针对 Lumen 的支持中,并没有 Laravel 支持那么复杂,你只需要安装即可使用。
其他
目前 medz/cors 的支持情况如下:
- [✓]?Array, Coding in Native PHP
- [✓]?Using PSR-7
- [❌]Symfony Support
- [✓]Laravel Support
- [✓]Lumen Support
- [❌]Yii2 Support
- [❌]Slim Framework
其中标示
❌的部分将逐步支持。
GitHub: https://github.com/medz/cors ,新轮子,请打一个?Star 吧!
Lumen跨域问题,PHP CORS Middleware的更多相关文章
- AJAX学习笔记2:XHR实现跨域资源共享(CORS)以及和JSONP的对比----转载
1 前言: 首先对参考文章作者表示感谢,你们的经验总结给我们这些新手提供了太多资源.本文致力于解决AJAX的CORS问题,我在逻辑上进行了梳理:首先,系统的总结了CORS问题的起源-同源策略:其次,介 ...
- 【fetch跨域请求】cors
当使用fetch 发起跨域请求时,CORS(跨域资源共享Cross-origin resource sharing) 请求fetch const body = {name:"Good boy ...
- c# WebApi之解决跨域问题:Cors
什么是跨域问题 出于安全考虑,浏览器会限制脚本中发起的跨站请求,浏览器要求JavaScript或Cookie只能访问同域下的内容.由于这个原因,我们不同站点之间的数据访问会被拒绝. Cors解决跨域问 ...
- 跨域资源共享(CORS)--跨域ajax
几年前,网站开发者都因为ajax的同源策略而撞了南墙.当我们惊叹于XMLHttpRequest对象跨浏览器支持所带来的巨大进步时,我们很快发现没有一个方法可以使我们用JavaScript实现请求跨域访 ...
- 允许跨域资源共享(CORS)携带 Cookie (转载)
如何让CORS携带Cookie CORS 是一个 W3C 标准,全称是“跨域资源共享”(Cross-origin resource sharing).默认浏览器为了安全,遵循“同源策略”,不允许 Aj ...
- ajax跨域请求解决方案 CORS和JSONP
什么是跨域: 只要协议.域名.端口有任何一个不同,都会被当成不同的域.而由于浏览器的同源策略(同源策略:域名.协议.端口均相同),浏览器之间要隔离不同域的内容,禁止互相操作,不能执行其他网站的js.所 ...
- [转]跨域问题(CORS / Access-Control-Allow-Origin)
原文链接:https://blog.csdn.net/xcbeyond/article/details/84453832 1.前言 最近在项目中,调用Eureka REST接口时,出现了CORS跨越问 ...
- ASP.NET Core-Docs:在 ASP.NET Core 中启用跨域请求(CORS)
ylbtech-ASP.NET Core-Docs:在 ASP.NET Core 中启用跨域请求(CORS) 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 1. ...
- ASP.NET Web API 跨域访问(CORS)
一.客户端用JSONP请求数据 如果你想用JSONP来获得跨域的数据,WebAPI本身是不支持javascript的callback的,它返回的JSON是这样的: {"YourSignatu ...
随机推荐
- Redis-位图
关于位图,可能大家不太熟悉, 那么位图能干啥呢?位图的内容其实就是普通的字符串,也就是byte数组,我们都知道 byte 8 位无符号整数 0 到 255 说个场景.比如你处理一些业务时候,往往会存在 ...
- Centos7没有IP地址,查看网络状态显示No suitable device found for this connection (devint match))
今天打开虚拟机,使用 ifconfig 命令时,没有显示出 IP 地址 (更好的阅读体验可访问 这里 ) 使用 systemctl status network 命令查看网络状态 显示没有合适的网络装 ...
- C++中字符常量与字符常量不能直接相加
定义string变量,并进行初始化,如下: string s1 = "Hello"; string s2 = s1 + "World"; string s3 = ...
- MySQL基础(7) | 触发器
MySQL基础(7) | 触发器 基本语法 创建 CREATE TRIGGER trigger_name trigger_time trigger_event ON table_name FOR EA ...
- Linux下VIM编译器的使用以及shell编程基础
VIM编译器的安装与使用 vim编辑器安装 在CentOS中,执行:yum -y install vim 普通模式 h: 左移一个字符 j: 下移一行 k: 上移一行 l: 右移一个字符 PageDo ...
- OpenCL中读取image时的坐标
本文测试OpenCL中读取image数据时关于坐标的两个问题: 使用float2坐标读取 使用int2坐标读取 首先完整的测试代码如下,测试平台为SDM855: #include <CL/cl. ...
- oracle分组后取最新的记录
使用Group By来实现取最新记录,需要注意一个问题,如果最大时间相同的数据都会被取出来. PS:即使数据字段类型是timestamp,也会登录相同的时间的数据. select A.* from A ...
- Jenkins+robotframework持续集成环境(三)
构建job并运行 一.配置job 1.在Jenkins首页的左侧菜单栏,点击新建任务,输入一个任务名称,并选择“构建一个自由风格的软件项目”,点击确定进入配置Job页面. 2.在构建处选择Window ...
- 【读书笔记】自然语言处理综述 -- 第四章 -- N元语法
第四章 N元语法 本章开篇的两句话很有意思,代表了当时两个学派的思想和矛盾. 一句是"有史以来最伟大的语言学家"乔姆斯基说的:"句子的概率,在任何已知的对于这个术语的解释 ...
- 小程序tabbar和navigator一起使用点不动
在项目开发中我遇到这样的一个问题,页面需要navigator链接跳转一个页面,tabbar也需要导航到这个页面,最开始还没有添加tabbar的时候,navigator都能够正常跳转,但是当加上tabb ...