我希望我的一个Azure功能执行 HTTP重定向。
这是该函数的当前代码:
module.exports = context => {
context.res.status(302)
context.res.header('Location', 'https://www.stackoverflow.com')
context.done()
}
但它不起作用。
Postman发出的请求显示响应有:
Status
:200 Location
未设置这是正确的代码吗?或者Azure功能根本不允许它?
答案 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);
};