Angular 角度HttpClient获取请求URL删除哈希标记/数字符号
我使用的是httpclient get,当我在请求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 闪电战: 为什么会发生这种情况
时,它会删除
之后的所有内容
例如:
预期请求:
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的一部分