【发布时间】:2016-10-12 13:19:48
【问题描述】:
这不是世界末日,但它会是一个很高兴拥有。
目前正在使用 Ionic 2 构建一个混合应用程序,我正在向服务器 API 发送请求。
我想让用户代理字符串报告应用程序和版本(以及平台),例如MyApp V1.0 (iOS)。
目前我正在发送如下请求:
http.post(my_server_url, JSON.stringify(dataToSend), options)
选项对象构造为:
let options = {
headers: myHeaders
};
将标题构造为:
let myHeaders = new Headers();
headers.append('Content-Type', 'application/json');
headers.append('User-Agent', 'MyApp V1.0 (iOS)');
用户代理是使用平台特定数据构建的,以上只是本问题的直接字符串。
请求按预期工作,服务器接收到数据并采取相应措施。服务器发送适当的请求,并得到适当的处理。但是,当我检查实际发送的标头时,用户代理不是我设置的。
例如,在 iPhone 上,我看到以下用户代理(通过 Safari 开发人员工具和服务器日志进行检查):
Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko)
这基于正在使用的包装 webview。因此,我猜测有一些机制阻止我覆盖用户代理。
作为同一个应用程序的一部分,我正在上传文件并为此使用cordova file transfer plugin。我为该传输设置了标头(不使用 Angular http),并且服务器日志中正确报告了用户代理。
因此,正如问题所述,有没有办法使用 Angular http 设置自定义 User-Agent 标头?
【问题讨论】:
标签: angular http-headers