我正在尝试使用fetch
发出ajax请求,当我这样做时,我收到405 (Method Not Allowed)
错误。
我正在执行它:
fetch(url, {
method: 'get',
headers: {
'Game-Token': '123'
}
});
那就是给我一个错误。如果我删除标题,请求将通过。但是,我需要在服务器上进行验证的头部。
fetch(url, { method: 'get' });
我的.htaccess文件中有以下设置:
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS, FETCH"
Header set Access-Control-Allow-Credentials "true"
Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept, Authorization, X-CSRF-TOKEN, Game-Token, developerKey"
Header set X-Frame-Options "SAMEORIGIN"
Header set Access-Control-Expose-Headers "Game-Token"
我不确定是什么导致这种情况无法通过。
答案 0 :(得分:0)
所以,这与JavaScript
或.htaccess
无关。相反,它与Lumen
有关。我们需要捕获OPTIONS
请求并回复。我们所做的是创建一个中间件文件,用于检查OPTIONS
方法并使用200
进行响应。
use Closure;
class CorsMiddleware
{
public function handle($request, Closure $next)
{
if ($request->isMethod('OPTIONS'))
{
return response('',200);
}
return $next($request);
}
}