【问题标题】:Javascript redirect (window.location.href) doesn't work in an Asp.NET Core project when called from an EventListener function从 EventListener 函数调用时,Javascript 重定向 (window.location.href) 在 Asp.NET Core 项目中不起作用
【发布时间】:2020-06-14 07:32:06
【问题描述】:

所以在点击按钮时,脚本会发送一个 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 做同样的事情,但它们都不起作用。 这是怎么回事?

【问题讨论】:

  • 在 cosole 中是否有任何错误?
  • @viveknuna 不,东西被正确解析,记录地址,然后它失败到 window.location.href
  • 你检查过网址,对吗?
  • @viveknuna 是的...

标签: javascript c# asp.net asp.net-core


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多