Ionic和Laravel之间的“访问控制允许来源”

时间:2018-08-13 13:36:04

标签: laravel ionic-framework http-headers access

我目前正在使用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'标头。

如果某些专家知道如何解决此问题。

2 个答案:

答案 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应用程序,只是停用了它们(没有其他解决方案可用)。