angular - 在Angular 6中将标头添加到http.get
问题描述
我正在尝试修改 deerawan 的工作示例,以包含另一个需要标题的网站的标题。我得到了下面的解决方案,它似乎工作得很好。但是当我添加时subscribe()
,它仍然有效,但我在控制台中遇到异常:
我应该怎么做才能修复此警告消息?谢谢你。
原始代码:
export class UserService {
private serviceUrl = 'https://jsonplaceholder.typicode.com/users';
constructor(private http: HttpClient) { }
getUser(): Observable<User[]> {
return this.http.get<User[]>(this.serviceUrl);
}
}
解决方案代码:
export class NWSForecast {
private config = {
headers: {
'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36'
}
};
private serviceUrl = 'https://api.weather.gov/gridpoints/OKX/36,38/forecast';
constructor(private http: HttpClient) { }
getUser(): Observable<any> {
// first argument is URL, put config as second argument
return this.http.get<any>(this.serviceUrl, this.config);
}
}
修改解决方案以捕获响应。但它有例外:
export class AppComponent {
private config = {
headers: {
'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36'
}
};
weathers: any;
private serviceUrl = 'https://api.weather.gov/gridpoints/OKX/36,38/forecast';
constructor(private http: HttpClient) { }
getWeather() {
this.http.get<Weather>(this.serviceUrl, this.config).subscribe(
val => {
this.weathers = val;
console.log('this.weather ====> ', this.weathers);
});
}
}
控制台中的错误消息:
Refused to set unsafe header "User-Agent" http.js:1436
解决方案
您收到错误是因为您需要将 URL 作为第一个参数提供给get
.
this.http.get<Weather>(url, this.config);
推荐阅读
- winapi - 如何强制 Windows 更新 DeskBand 最小/最大范围?
- java - 空对象引用上的方法“boolean java.lang.String.isEmpty()”
- geometry - 如何知道一个点是否位于外圈?
- node.js - 在不更改密码的情况下更新后端数据库
- mongodb - Mongo 聚合到 PostgresSQL
- docker - 我无法访问 docker 中的容器
- spring - Spring Profile 用于同一个 Bean
- javascript - 距离转换器一直导航到 PHP 页面
- html - 在 Ionic 项目中获取并显示后端 json 数据作为下拉列表
- ios - 由于哨兵,应用程序构建在 xcode 中失败,并在后台继续(无法显示 Xcode 通知)