Vue3+laravel10框架本地嗯能访问但是通过路由映射的专线ip+端口访问,cors报错。cors.php配置了不行。
login:1 Access to XMLHttpRequest at 'http://192.168.1.188:9099/api/login' from origin 'http://222.141.*:22222' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header has a value 'http://localhost:5173' that is not equal to the supplied origin.
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class CorsMiddleware
{
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
*/
public function handle($request, Closure $next)
{
$allowedOrigins = [
'https://192.168.1.188:22222', // 公网
'https://222.141.*:22222', // 内网
'http://localhost:22222', // 开发环境
'http://222.141.*:22222',
'http://222.141.*:9099',
];
$origin = $request->header('Origin');
if (in_array($origin, $allowedOrigins)) {
$response = $next($request);
$response->headers->set('Access-Control-Allow-Origin', $origin);
$response->headers->set('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
$response->headers->set('Access-Control-Allow-Headers', 'Content-Type, Authorization, X-Requested-With');
$response->headers->set('Access-Control-Allow-Credentials', 'true');
return $response;
}
return $next($request);
}
}