我目前正在使用laravel网站上的网站来构建Ionic应用程序。问题如下:我得到
请求的请求上没有'Access-Control-Allow-Origin'标头 资源。
当我尝试从我的API获取json文件时。我看到这是一个标题问题,我需要授权Access-Control-Allow-Origin。我做到了 访问控制允许来源:*
刷新页面时,我在Chrome上看到F12菜单:
Response headers
Access-Control-Allow-Origin: *
因此,这意味着访问已被授权。但是当我尝试访问链接
mywebsite.com/api
从应用程序中,我仍然出现错误所请求的资源上没有'Access-Control-Allow-Origin'标头。
如果某些专家知道如何解决此问题。
答案 0 :(得分:1)
我从@asamarcos(https://github.com/barryvdh/laravel-cors/issues/243)找到了这个答案:
您必须按照laravel-cors手册中的要求在Kernel.php上注册HandleCors。这样会在“ api”中间件下的所有路由中添加cors。
'api' => [
'throttle:60,1',
'bindings',
\Barryvdh\Cors\HandleCors::class,
],
问题是Passport在API中间件之外拥有自己的路由。 因此,您必须在AuthServiceProvider上设置护照路线,显式地将HandleCors作为中间件:
public function boot()
{
$this->registerPolicies();
Passport::routes(null, ['middleware' => [ \Barryvdh\Cors\HandleCors::class ]]);
}
答案 1 :(得分:0)
如果有人和我一样,我会发布解决方案。问题来自.htaccess,我只有登录名和密码才能访问该域,并且它阻止了ionic应用程序,只是停用了它们(没有其他解决方案可用)。