当用户单击按钮时,我尝试将用户重定向到登录页面,但我得到的不是重定向,而是html源代码,并且没有任何反应。
下面是我在express中的重定向方法:
function redirect(req, res) {
res.redirect("https://dev-krbec.authentication.eu10.hana.ondemand.com/login");
};
下面是如何通过一个简单的get查询从客户端调用它:
$.get({
url: document.URL + "api/redirect",
success: function (data) {
console.log(data);
// window.location.href=data;
},
error: function (err) {
console.log(err);
}
});
然而,重定向从来没有执行过,我只得到了一个包含我想要重定向到的页面的整个html源代码的数据变量。
该查询如下所示:
这是一个应该只包含URL的响应,但它包含的却是html源代码:
我是不是遗漏了什么?
发布于 2018-08-10 08:59:44
我不完全确定您想要做什么,以及您的应用程序是如何设置的。是否只想返回要设置为location.href的url?而不是这样做,您可以简单地在客户机上执行重定向,如下所示:
window.location.href = 'https://dev-krbec.authentication.eu10.hana.ondemand.com/login'
如果您真的只想从服务器返回URL,那么可以更新快速路由逻辑,将url作为response对象的一个属性返回:
function redirect(req, res) {
res.send({url: "https://dev-krbec.authentication.eu10.hana.ondemand.com/login"});
};
不过,我的猜测是,你真正想要的是一个真正的从服务器端到Express本身的重定向。如果是这样,请将您为请求定义的路由处理程序与它可能调用的函数进行比较。这可能会让我们更好地看到哪里可能出了问题。
https://stackoverflow.com/questions/51774648
复制相似问题