Jde*_*nce 5 asp.net iis webforms http angular
当 Angular 使用 HttpClient 进行 GET 调用时,在我们的 QA 环境中,请求中缺少查询参数和授权标头。当在本地运行 Angular 时,指向 QA API,它会按预期发送它们。
以下是查询参数的设置方式:
const params = new HttpParams().set('schedulingOnly', schedulingOnly ? 'true' : 'false');
return this.httpClient.get<any>(this.getBaseUrl() + '/domain/getAll', { params });
Run Code Online (Sandbox Code Playgroud)
以下是 Authorization 标头的设置方式(拦截器):
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
if (environment.useHttpMockRequestInterceptor) {
return this.useMockData(request);
} else {
request = this.AddAuthenticationHeader(request);
return next.handle(request);
}
}
private AddAuthenticationHeader(request: HttpRequest<any>) {
const request = request.clone({
headers: request.headers
.set('Authorization', 'Bearer ' + sessionStorage.getItem('access_token'))
});
return request;
}
Run Code Online (Sandbox Code Playgroud)
这是所有基本信息,但下面是有关我尝试过但没有成功的事情的附加信息。

我也尝试在没有拦截器的情况下直接设置,但没有运气。
const obj = {
headers: { 'Authorization': 'Bearer ' + sessionStorage.getItem('access_token') },
params: { 'schedulingOnly': schedulingOnly ? 'true' : 'false' }
};
return this.httpClient.get<any>(this.getBaseUrl() + '/domain/getAll', obj);
Run Code Online (Sandbox Code Playgroud)
问题是 PrototypeJs 干扰了 Angular。这导致了这个问题,但没有警告或错误,所以它只是默默地导致了这个问题。PrototypeJs 用于包含 Angular 嵌入的 ASP.NET Web 表单应用程序。这是在本地工作但在 QA 中不起作用的原因是因为我实际上确实具有不加载 PrototypeJs 的功能(如果它是 Angular 页面),这是由于之前注意到其他问题,但由于网站从 开始,所以在 QA 中不起作用子路径,而不是直接在主机上,因此不加载 PrototypeJs 的功能不起作用。
| 归档时间: |
|
| 查看次数: |
484 次 |
| 最近记录: |