在fetch api

时间:2017-04-17 19:07:56

标签: javascript php ajax laravel .htaccess

我正在尝试使用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"

我不确定是什么导致这种情况无法通过。

1 个答案:

答案 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);
    }
}