Javascript 重定向 (window.location.href) 在从 EventListener 函数调用时在 Asp.NET Core 项目中不起作用



因此,单击按钮后,脚本会发送一个 POST 请求,该请求被正确处理并发送以下响应

redirectUrl = Request.Host + "/" + page.PageURL;
return Json(new { url = redirectUrl });

上述过程由以下代码启动

var request = new XMLHttpRequest();
request.open("POST", "/Page/Upload");
request.send(formData);
handleRequestSent(request);

下面的部分正确解析了返回的 Json 并给出了正确的 url(localhost:5001/pagename(

function handleRequestSent(request) {
request.addEventListener("readystatechange", function () {
console.log(this);
if (this.readyState === 4) {
var responseData = JSON.parse(this.responseText);
console.log(responseData.url);
redirectToPage(responseData.url);
};
});
}

这是不起作用的部分。但是当从上面的代码调用时,它似乎不起作用。当我直接调用此方法时,它将我重定向到指定的地址。

function redirectToPage(redirectUrl) {
window.location.href = redirectUrl;
}

我也尝试了各种其他形式,它们与window.location.href做同样的事情,但没有一个有效。 这是怎么回事?

您忘记将请求方案添加到重定向网址:

redirectUrl =  Request.Scheme + "://" + Request.Host + "/" + page.PageURL;

最新更新