【发布时间】:2021-12-13 21:36:00
【问题描述】:
我的应用 Lumen-VueJs 有问题
我发出请求,请求状态为 200,我收到了我想要的,但在“网络”上,请求被阻止。 ( 屏幕 )
我的应用上有一个类似的 CorsMiddleware,它也添加到 bootstrap/app.php 中
<?php
/**
* Location: /app/Http/Middleware
*/
namespace App\Http\Middleware;
use Closure;
class CorsMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$headers = [
'Access-Control-Allow-Origin' => '*',
'Access-Control-Allow-Methods' => 'POST,GET,PATCH,PUT,DELETE,OPTIONS',
'Access-Control-Max-Age' => '86400',
'Access-Control-Allow-Headers' => 'Content-Type,API-KEY'
];
if ($request->isMethod('OPTIONS')) {
return response()->json('', 200, $headers);
}
$response = $next($request);
foreach ($headers as $key => $value) {
$response->header($key, $value);
}
return $response;
}
}
我不明白为什么会出现必须由我的中间件授权的错误
提前感谢您的帮助!
【问题讨论】:
-
您能分享一下
Transfert列中显示的消息吗? -
当然,消息是
CORS Missing Allow Origin,请注意,如果我使用POSTMAN它可以正常工作而不会出现任何错误消息 -
谢谢。当
POSTing via Chrome 时,您能否检查您的回复是否包含您在代码中列出的所有标头? -
我在 Firefox 上,当我在 Chrome 上测试时,消息是:``Cross-Origin Resource Sharing error: MissingAllowOriginHeader`。在 Firefox 上,我收到了我需要的响应(不记名令牌),但在 Chrome 控制台上,响应为空
-
我不是在谈论响应。在
Headers选项卡(我假设为En-têtes)中,列出了Response和Request的哪些标头?在那里您可以检查您的标头是否实际发送,即您的中间件是否按预期工作。