吐槽ng-alain

前言

使用Ng-aialin有一段时间了,虽然有坑,可是仍是本身掌握的不熟练,这个问题也困惑了我一段时间html

问题分析

  1. 在使用前端框架不登陆时发送http请求
  2. 请求不能发出
  3. 代码

service:前端

` public getAll(): Observable<Array<Website>> {
    return this.httpClient.get<Array<Website>>(`${this.baseUrl}`);
}`

ts:web

`this.websiteService.getAll().subscribe(
        (res)=> {
            this.websiteList = res;
            console.log(res);
        },() => {
            this.msg.error('error');
            console.log('error');
        });`
一个很是简单的get请求获取所有的数据

问题

在控制台没有找不到该网络请求
image.png
一样控制台也会打印错误
image.png前端框架

很明显,前台在发送请求时,就没有发送出去(被拦下了),否则控制台不可能没有请求

缘由

看了拦截器的代码,发现本身写的拦截器没有任何问题,问了张喜硕顺便查了一下资料。网络

发现:Ng-aialin 默认实现了拦截器,在发送http请求的时会默认添加token,若是没登陆,没有token,它就会将你的请求拦下(它认为你只有登陆才能发请求)参考文章框架

image.png

解决办法

在发送http 请求的时候带上_allow_anonymous 参数容许匿名登陆,也就是不带token是也让它发送请求。
image.png
在控制台能够看到发送的请求,可是还有问题那就是报: 401
image.pngthis

401 很是常见的状态码,没有权限,那解决也就很是简单了

解决401

因为后台配置了Spring Security会对后台的任何请求进行认证保护,在请求时没有登陆,因此就会出现401的错误了spa

image.png

忽略对该请求的认证保护

请求成功

image.png

在此发送请求,状态码200,请求成功

总结

在ng-alain的文档中并无说明,这也是我掉坑的缘由,但愿对其余人有所帮助。
相关文章
相关标签/搜索