こんにちは。日本マイクロソフト Outlook サポート チームです。
この記事では、Outlook アドイン (Web アドイン) 開発者の方向けに、アドインからの POST 送信が GET に変換される事象について説明します。
現象
1. Outlook アドインで submit ボタンを持つ作業ウィンドウを作成します。
2. 作業ウィンドウの HTML にて以下のように method を POST とした form を作成します。
<form action="http://www.contoso.msft/test/index.aspx" name="form1" method="post">
<input type="submit" value="テスト">
<input type="hidden" name="test01" value="0001">
</form>
3. ボタンをクリックすると、IE の新しいウィンドウがオープンし、アドレスバーに以下の URL が表示されます。
http://www.contoso.msft/test/index.aspx
4. このときのトラフィックを確認すると、コード上は POST 指定しているにもかかわらず、クライアントから以下のヘッダーでリクエストが送信されています。
GET /test/index.aspx HTTP/1.1
5. サーバー側でも GET としてリクエストが受信され、以下のようなログが記録されます。
2018-12-06 00:00:01 10.0.0.4 GET /test/index.aspx - 443 - 192.168.1.1 Mozilla/5.0+(Windows+NT+6.3;+WOW64;+Trident/7.0;+Touch;+rv:11.0)+like+Gecko - 200 0 0 29
上記 3 のとおり POST 指定のため URL にパラメーターは含まれません。パラメーター無しのまま GET 送信に変換されているため、この例の場合、パラメーター名 test01 の情報が消失します。
発生条件
Outlook for Windows の場合に発生します。Outlook on the Web などでは発生しません。
原因
Outlook アドインは作業ウィンドウを IE のコンポーネントを使用して開きます。
作業ウィンドウから form を submit すると、IE のウィンドウが新しく表示されますが、その際に IE のコンポーネント内で動作制限が生じ、POST から GET に変換されます。
回避策
POST 送信を維持する方法はありません。
HTML 上で method="get" を指定し、はじめから GET 送信とすることで、パラメーターを維持することは可能です。
________________________________________
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。