【发布时间】:2023-03-14 13:20:02
【问题描述】:
我目前正在创建一个网站。我被卡住的问题是我无法使用 Javascript 重定向到另一个 ASPX 页面。这是我的代码:
<asp:Button ID="Save" runat="server" Text="Schedule" CssClass="vs-btn mT10" OnClientClick="return SendFormValuesForXml(); return false;" />
上面的 Javascript 函数执行 AJAX 调用,成功后我重定向到正在执行几件事的另一个页面。 AJAX 调用在这里:
var responseString = "";
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "Default.aspx/MakeXml",
dataType: "json",
data: "{'data':'" + stringToSend + "'}",
async: false,
cache: false,
success: function (result) {
debugger;
window.location.reload(true);
var valuationUrl = window.location.protocol + "//" + window.location.host + "/ValuationList.aspx";
window.location.assign(valuationUrl);
return false;
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("Status: " + textStatus); alert("Error: " + errorThrown);
}
});
现在一切正常,除了成功函数中的重定向。知道是什么干扰了javascript吗? 附加信息:
- 没有更新面板在该页面或网站的任何其他页面上工作。
- 浏览器没有抛出任何错误,除了错误的 Chrome 'jquery.min.map' not found 错误。
到目前为止我所尝试的:
- document.location.replace(valuationUrl);
- location.href =valuationUrl;
- $(location).attr('href',valuationUrl);
堆栈溢出中提到的所有其他选项都是 this link。
更新:我采用了错误的解决方案 在做了很多事情之后,比如拿一个不可见的按钮并在其点击重定向页面上运行服务器端功能和其他事情,所有这些都失败了。 我所做的是将隐藏字段设置为 0,然后将其值更新为 1。稍后当同一页面加载时,我检查其值是否为 1,因此我强制重定向到下一页。
【问题讨论】:
-
你可以使用
window.location.href = "/valuationlist.aspx"。你不需要做任何协议的东西。 -
不,这不起作用。我应该删除
reload()吗? -
是的,这应该是成功块下唯一的代码行(除非您在重新加载之前还需要做其他事情)。
-
这一行怎么样:
var valuationUrl = window.location.protocol + "//" + window.location.host + "/ValuationList.aspx";我这样做是为了在网站上线时,它可以有 HTTP 或 HTTPS,以及任何 URL/主机。 -
你确定成功函数真的在运行吗?
标签: javascript jquery html asp.net ajax