【问题标题】:laravel header Allow Origin error while calling apilaravel 标头在调用 api 时允许 Origin 错误
【发布时间】:2018-02-15 07:04:33
【问题描述】:

我创建了一个返回用户列表的 api。我在邮递员应用程序中对其进行测试并且工作正常(返回 json)。但是当我尝试在 ionic2 中调用它时,它会在控制台中显示错误。我尝试插入 header('Access-Control-Allow-Origin: *'); 在顶部的 public/index.php 中。并尝试制作一个中间件,handler() 有以下代码

return $next($request)
        ->header('Access-Control-Allow-Origin', '*')
        ->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');

路由/api.php

Route::group(['middleware' => ['Cors']] ,function(){

     Route::get('/nearby',['as' => 'people.nearby' , 'uses' => function(){
       return User::all();
     }]);
});

在 kernel.php($routeMiddleware) 中,我将联盟添加为'Cors' => \App\Http\Middleware\Cors::class

我尝试从 google 调用测试 api 链接(https://randomuser.me/api/)以检查我的 js 或 typescript 代码是否工作正常,我得到了 json 的响应,但在调用我的 laravel api 时出现 Allow Access Origin 错误。 我在哪里出错或我的代码中有一些错误。任何帮助将不胜感激。

这里是网络选项卡(开发者模式)的api请求结果。

【问题讨论】:

  • 您可以在控制台消息中发布错误吗?
  • 以及请求/响应标头例如stackoverflow.com/a/40359870/5039495
  • XMLHttpRequest 无法加载 localhost/social/public/api/nearby。 “Access-Control-Allow-Origin”标头包含多个值“*、*”,但只允许一个值。 Origin 'localhost:8100' 因此不允许访问。
  • @Icycool .i 插入网络请求响应图片,请看一次谢谢
  • 抱怨你有两行Access-Control-Allow-Origin

标签: angularjs laravel ionic-framework


【解决方案1】:

我加了

header('Access-Control-Allow-Origin: *');

public/index.php 中并删除了 Cors 中间件,一切都完成了。

【讨论】:

    【解决方案2】:

    可能是因为 Ionic2 本身不允许向您的端点发出网络请求。

    您需要更新 Ionic2 应用,而不是服务器端 (Laravel)。

    在您的 Ionic2 config.xml 中,您很可能需要调整 access 属性,请参阅此处的文档:

    https://cordova.apache.org/docs/en/latest/config_ref/#access

    【讨论】:

    • 好的,所以你的意思是我的 api 很好,问题出在离子配置文件中。?
    • @sandeep 确实,如果您在服务器端启用了 CORS,则问题可能来自您的 Ionic 应用程序。 config.xml 应该在根文件夹中,你必须编辑 <allow-navigation> 标签
    猜你喜欢
    • 2015-03-21
    • 2016-08-21
    • 2015-12-19
    • 2019-02-12
    • 1970-01-01
    • 2011-05-31
    • 2016-09-30
    • 2019-06-19
    • 2017-06-29
    相关资源
    最近更新 更多