雨中笑 php 811热度
简介跨域问题
在中间件中解决
<?php
/**
* CorsMiddleware.php
*
* User: Jialong.fan
* Date: 2021/01/05
* Email: <1171843306@qq.com>
*/
declare(strict_types = 1);
namespace App\Middleware;
use Hyperf\Utils\Context;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\MiddlewareInterface;
use Psr\Http\Server\RequestHandlerInterface;
/**
* Class MobileReportCorsMiddleware
*
* @package App\Middleware
*/
class MobileReportCorsMiddleware implements MiddlewareInterface
{
/**
* 跨域白名单
*
* @var string[]
*/
protected $corsOrigins = [
'http://yzx-fjl.com',
'https://baidu.com',
];
/**
* @inheritDoc
*/
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$response = Context::get(ResponseInterface::class);
$origin = $request->hasHeader('origin') ? $request->getHeader('origin') : '';
if (config('debug') || in_array($origin, $this->corsOrigins)) {
$response = $response->withHeader('Access-Control-Allow-Origin', $origin)
->withHeader('Access-Control-Allow-Credentials', 'true')
->withHeader('Access-Control-Allow-Headers', 'DNT,Keep-Alive,User-Agent,Cache-Control,Content-Type,Authorization');
}
Context::set(ResponseInterface::class, $response);
if ($request->getMethod() == 'OPTIONS') return $response;
return $handler->handle($request);
}
}
很赞哦!(2)
本文阅读量 3055‧发布于 2021年1月8日
您的访问IP 3.145.97.248‧最早于 2024年4月29日 7时33分24秒 阅读过本文 ‧ 为本文提供了 1 热度 1 阅读量