JavaScript
Azure
AzureFunctions

AzureFunctionsでHTMLやJSONを返す。HTTPヘッダに手を加える。

AzureFunctionsの出力にHTTPを選んだとき、resメソッドにコンテンツを直接代入する形になりますが、これにHTMLやJSONを突っ込む時に上手く解釈してくれなかったので、それについての解決策をメモ。

解決

headersオブジェクト内でContent-Typeを明示的に指定する必要がある。

context.res = {
    status: 200,
    headers: { 'Content-Type': 'application/json' },
    body : { message : 'Hello World!'}
};

結果

スクリーンショット (3).png
ブラウザ側でもちゃんとJSONだと認識してくれます。

症状

context.res = {
    status: 200,
    body : { message : 'Hello World!'}
    // Headerを指定していない
};

結果

スクリーンショット (4).png
クライアントによって解釈の方法がまちまちになる。

終わりに

ヘッダの指定ができるのでクロスオリジン要求にも対応が出来ますね。
JavaScriptを使っていますが、他の言語でも同じように対応できると思います。