Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度HttpClient获取请求URL删除哈希标记/数字符号_Angular_Angular6_Angular Httpclient - Fatal编程技术网

Angular 角度HttpClient获取请求URL删除哈希标记/数字符号

Angular 角度HttpClient获取请求URL删除哈希标记/数字符号,angular,angular6,angular-httpclient,Angular,Angular6,Angular Httpclient,我使用的是httpclient get,当我在请求URL中有一个时,它会删除之后的所有内容 例如: 预期请求: https://jsonplaceholder.typicode.com/users/1#TEST 实际请求: https://jsonplaceholder.typicode.com/users/1 我尝试使用PathLocationStrategy,但它只影响路由器链接 以slackblitz为例,它还具有PathLocationStrategy 闪电战: 为什么会发生这种情况

我使用的是httpclient get,当我在请求URL中有一个
时,它会删除
之后的所有内容

例如:

预期请求:

https://jsonplaceholder.typicode.com/users/1#TEST

实际请求:

https://jsonplaceholder.typicode.com/users/1

我尝试使用PathLocationStrategy,但它只影响路由器链接

以slackblitz为例,它还具有PathLocationStrategy

闪电战:

  • 为什么会发生这种情况
  • 有什么解决方案/解决办法吗

  • 我的解决方案是截取并编码url和参数

    应用程序模块.ts

    providers: [
        {
          provide: HTTP_INTERCEPTORS,
          useClass: EncodeHttpParamsInterceptor,
          multi: true,
        },
    
    编码HttpParamsInAcceptor

    @Injectable()
    export class EncodeHttpParamsInterceptor implements HttpInterceptor {
      intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
        const params = new HttpParams({encoder: new CustomEncoder(), fromString: req.params.toString()});
        const httpUrlEncoding = new HttpUrlEncodingCodec();
        return next.handle(req.clone({
          params,
          url: httpUrlEncoding.encodeValue(req.url),
        }));
      }
    }
    
    export class CustomEncoder implements HttpParameterCodec {
      encodeKey(key: string): string {
        return encodeURIComponent(key);
      }
    
      encodeValue(value: string): string {
        return encodeURIComponent(value);
      }
    
      decodeKey(key: string): string {
        return decodeURIComponent(key);
      }
    
      decodeValue(value: string): string {
        return decodeURIComponent(value);
      }
    }
    

    这是一个碎片。。不是url的一部分