2016-10-12 6 views
3

これは世界の終わりではありませんが、それはを持っていいですでしょう。httpで使用されるUser-AgentヘッダーをAngular2で設定することはできますか?

現在、Ionic 2を使用してハイブリッドアプリを構築しており、サーバーAPIにリクエストを送信しています。

ユーザエージェントの文字列にアプリとバージョン(プラットフォームと一緒に)を報告したいと思います(例:MyApp V1.0 (iOS))。ユーザーエージェントが構築されて

let myHeaders = new Headers(); 
headers.append('Content-Type', 'application/json'); 
headers.append('User-Agent', 'MyApp V1.0 (iOS)'); 

:として

に構築されているヘッダを持つ
let options = { 
    headers: myHeaders 
}; 

現在、私のような要求を送信しています:optionsオブジェクト

http.post(my_server_url, JSON.stringify(dataToSend), options) 

のように構成されプラットフォーム固有のデータを使用して、上のコードは目的のための単純なストリングですこの質問。

要求は期待どおりに機能し、データはサーバーによって受信され、それに従って処理されます。サーバーは、適切に処理された適切な要求を送信します。しかし、実際に送信されたヘッダーをチェックすると、User-Agentは自分が設定したものではありません。

たとえば、iPhone上で、私は(両方のSafariの開発者向けツールを経由してチェックし、またサーバーログ)は、次のユーザーエージェントを参照してください。

使用されているラッピングのWebViewに基づいています
Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) 

。したがって、私はユーザエージェントを無効にするいくつかのメカニズムがあると推測しています。

同じアプリケーションの一部として、私はファイルをアップロードしており、そのためにcordova file transfer pluginを使用しています。その転送用のヘッダー(Angular httpは使用していません)を設定し、ユーザーエージェントはサーバーログに正しく報告されています。

したがって、問題として、角型httpを使用してカスタムのUser-Agentヘッダーを設定する方法はありますか?

答えて

1

ブラウザでは、ユーザーエージェントのヘッダーを無効にすることはできません。あなたはそれを可能にするが、ブラウザの拡張機能をインストールすることができます。

これで、ターゲットデバイスにインストールするネイティブアプリケーションにコンパイルされても参照JQuery Ajax Request: Change User-Agent

+0

残念ながら、それは、これがハイブリッドアプリケーションであるようなイオン2を使用して作成、ヘルプ(したがってコルドバ)ではないであろう、ケースiOSとAndroid。したがって、ブラウザのプラグインは適用されません。私はあなたの答えは基本的にWebブラウザ(Webビューを含む)だと仮定し、ユーザーエージェントの設定を無効にします。 – jpmcc

+1

私は本質的に正しいので、私はこの回答を受け入れるつもりだと思う - ウェブビューは私がユーザエージェントを変更することを許さず、それは設定された質問に答える。しかし、私は今、コルドバにそれを上書きする方法を見いだしました。これはおそらく設定された問題を超えています。 – jpmcc

+1

私は間違ってコードバではなく角度に焦点を当てていました。 [これは助けました](http://stackoverflow.com/questions/32052221/how-i-can-set-user-agent-in-cordova-app#answer-32337353) – jpmcc

関連する問題