【发布时间】:2017-09-13 10:48:08
【问题描述】:
我正在尝试使用 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"
我不确定是什么导致这无法通过。
【问题讨论】:
-
您将请求发送到哪个 URL?是你自己的 API 还是第三方的?如果是后者,他们是否提供了如何访问 API 的文档?
-
这是我自己使用 lumen 运行的 API 服务器
-
看起来在
lumen中我需要在路由中捕获OPTIONS类型。 -
检查您的 api 方法,可能会有所不同,这就是您收到此响应的原因。
标签: javascript php ajax laravel .htaccess