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