如何强制Azure功能将JSON输出到浏览器

时间:2017-03-23 20:28:15

标签: javascript json node.js azure azure-functions

我使用此源设置了天蓝色功能:

module.exports = function(context, req) {
    //this is the entire source, seriously
    context.done(null, {favoriteNumber : 3});
};

当我使用postman这样的工具访问它时,我得到一个不错的JSON输出,就像我想要的那样:

{
  "favoriteNumber": 3
}

问题是当我在浏览器(chrome,firefox等)中访问它时,我看到:

<ArrayOfKeyValueOfstringanyType xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays"><KeyValueOfstringanyType><Key>favoriteNumber</Key><Value xmlns:d3p1="http://www.w3.org/2001/XMLSchema" i:type="d3p1:int">3</Value></KeyValueOfstringanyType></ArrayOfKeyValueOfstringanyType>

enter image description here 无论请求标头是什么,我如何强制azure总是给我一个json输出?

1 个答案:

答案 0 :(得分:9)

您是否尝试将响应对象Content-Type明确设置为application\json

module.exports = function(context, req) {
    res = {
        body: { favoriteNumber : 3},
        headers: {
            'Content-Type': 'application/json'
        }
    };

context.done(null, res);
};

默认情况下,为内容协商配置功能。当您拨打电话时,Chrome会发送一个标题,如

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

所以,它要求XML并将其恢复。