Azure功能重定向标头

时间:2017-03-21 15:49:29

标签: javascript azure azure-functions

我希望我的一个Azure功能执行 HTTP重定向

这是该函数的当前代码:

module.exports = context => {
  context.res.status(302)
  context.res.header('Location', 'https://www.stackoverflow.com')
  context.done()
}

但它不起作用。

Postman发出的请求显示响应有:

  • Status:200
  • Location未设置

这是正确的代码吗?或者Azure功能根本不允许它?

2 个答案:

答案 0 :(得分:6)

上面的代码确实有效,除非您将绑定名称设置为$ return,这是我现在假设的(您可以在集成选项卡中查看)

以下任一选项也会执行您正在寻找的内容

假设绑定配置中的$ return:

module.exports = function (context, req) {
var res = { status: 302, headers: { "location": "https://www.stackoverflow.com" }, body: null};
context.done(null, res);
};

或者使用" express style" API(在绑定配置中不使用$ return):

module.exports = function (context, req) {
context.res.status(302)
            .set('location','https://www.stackoverflow.com')
            .send();
};

答案 1 :(得分:3)

以下代码适用于我:

module.exports = function (context, req) {
    res = {
        status: 302,
        headers: {
            'Location': 'https://www.stackoverflow.com'
        },
        body: 'Redirecting...'
    };
    context.done(null, res);
};