【问题标题】:laravel and angular routes overlapping and redirect to 404laravel 和 angular 路线重叠并重定向到 404
【发布时间】:2021-07-07 06:34:56
【问题描述】:

我有一个 Angular 项目,它是我的根网站,并且在 public_htmlbackend 文件夹中有一个 Laravel 项目。我有两种类型的路由,/backend/api/** 是我的 api 路由,当用户想直接在浏览器中访问但想通过 angular 中的 httpclient 模块访问时,我想重定向到 angular 项目中的 /404 并且我有 @987654325 @ 这是我的管理路线,我想保持不变,可以通过浏览器访问。我的问题是 ** 路由在角度重叠所有 laravel 路由并重定向到 /404。什么是最好的解决方案。我应该更改 .htaccess 文件还是什么?你能帮帮我吗?

【问题讨论】:

  • 你可以添加自定义标题到角度httpClient然后基于服务器(laravel可以反应)
  • 由于 ** 角度路由,请求没有到达 laravel 控制器
  • 表示你无法调用api?
  • 奇怪的是我可以调用 api 但是当我在浏览器中加载该 api 路由时它会重定向到 404
  • 哦,那有什么问题呢?

标签: angular laravel angular-routing laravel-routing


【解决方案1】:

我不知道 angular 所以我从这里拿了 ref Adding a HTTP header to the Angular HttpClient doesn't send the header, why?

角度

let headers = new HttpHeaders();
headers = headers.set('from', 'api');

然后创建一个中间件

public function handle($request, Closure $next)
{
    if($request->header('from') != 'api'){
        return redirect('/'); // replace this with your url
    }
    return $next($request);
}

注意这不是精确的解决方案,而是一个想法

【讨论】:

  • 这对于 api 调用和管理员调用来说没问题,但是其他路由呢……我的意思是其他非角度路由不会重定向到 404……因为我需要从 angular 中删除 404 路由然后这样做
  • @ArazShamsaddinlouy 你只需要应用这个中间件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-17
  • 1970-01-01
  • 2019-01-12
  • 2018-09-26
  • 1970-01-01
  • 2017-02-26
  • 2023-04-02
相关资源
最近更新 更多