繁体   English   中英

从 EventListener function 调用时,Javascript 重定向(window.location.href)在 Asp.NET 核心项目中不起作用

[英]Javascript redirect (window.location.href) doesn't work in an Asp.NET Core project when called from an EventListener function

因此,单击按钮后,脚本会发送一个 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;
}

我还尝试了其他各种 forms 与 window.location.href 做同样的事情,但它们都不起作用。 这里发生了什么?

您忘记将请求方案添加到 redirectUrl:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM