如何从本地主机(HTTP)调用网站HTTPS内部的API



我正在做一些测试。我正在vue中开发一个后端为laravel的应用程序。后端位于当前处于联机状态的HTTPS域中。我想从localhost访问在线的API。主要问题是CORS。

我使用Laravel 9。在App\Http\Middleware中,我用以下代码创建了Cors.php。

class CORS
{
public function handle($request, Closure $next)
{
$headers = [
'Access-Control-Allow-Origin' => '*',
'Access-Control-Allow-Methods' => '*',
'Access-Control-Allow-Headers' => 'Content-Type, 
X-Auth-Token, Origin, Authorization',
'Access-Control-Max-Age' => '1728000',
];
if ($request->getMethod() == "OPTIONS") {
// The client-side application can set only headers
// allowed in Access-Control-Allow-Headers
return response()->json('OK', 200, $headers);
}
$response = $next($request);
foreach ($headers as $key => $value) {
$response->header($key, $value);
}

return $response;
}
}

在App\Http Kernel.php中,我添加了这个。

protected $middleware = [
AppHttpMiddlewareCors::class,
];
protected $routeMiddleware = [
'cors' => AppHttpMiddlewareCors::class
];

问题仍然存在,并且Access-Control-Allow-Origin不存在。

我可以从本地主机调用HTTPS API吗?如何

您可以直接在Nginx配置中添加头(在生产中避免这种情况(

location you-location {
add_header Access-Control-Allow-Origin *;      
}

最新更新