尝试在Google App Engine上创建API时遇到了一些困难。流程是域正在通过XHR向Google App Engine托管的我的微服务发送表单提交。 我看到的行为是,表单提交被列为GET时会发送预检(OPTIONS)
在微服务上的路由中,我有一个使用Dingo API路由的get路由,并且由于浏览器发送了预检,因此get方法发送了一个“不允许的方法”
从原点“ https://recieverdomain/apis/v1/create_issue”到“ https://requestdomain.no”处对XMLHttpRequest的访问已被CORS策略阻止:对预检请求的响应未通过访问控制检查:否'access-Control-Allow-来源的标头出现在请求的资源上。
我添加了标头以允许来源,但由于方法不匹配,因此将其发送回“方法不允许”(选项-> GET)
这是我的代码:
$api = app('Dingo\Api\Routing\Router');
$api->version('v1',function ($api) {
$api->group(['prefix' => 'v1'],function ($api) {
$routes = [
'list_issues' => [
'as' => 'issue.list','uses' => 'App\Controllers\issueController@list_all'
],'create_issue' => [
'as' => 'issue.create','uses' => 'App\Controllers\issueController@create_issue'
]
];
foreach ($routes as $route => $definition) {
$definition["middleware"] = 'auth:jwt';
$api->get($route,$definition);
}
$api->get('/',['middleware' => 'auth',function () use ($routes) {
$endpoints = [];
foreach ($routes as $route => $definition) {
$endpoints[$route] = app('Dingo\Api\Routing\UrlGenerator')->version('v1')->route($definition["as"]);
}
return [
"Name" => getenv("API_NAME") . " Endpoints","Endpoints" => $endpoints
];
}]);
});
});
我的问题是,如何对方法进行分组,以便可以将OPTIONS
方法与GET
一起包含