我需要做的是首先调用URL来生成令牌,然后在生成令牌后打开(相同)站点的另一个页面。问题是生成令牌的窗口快速关闭所以我无法进行身份验证
这是我的实际代码
function configurarClickLinkPromociones() {
$("#promocionesLink", contextoServicios).click(function () {
var winRef;
var seccionUrl = $(this).attr("data-url-seccion");
if (seccionUrl != "") {
showLoading();
$.ajax({
url: '/Support/GetToken',
type: "GET",
dataFormat: "text/json",
success: function (data) {
HideLoading();
winRef = window.open(data.Url + data.Token, '', 'menubar=0,resizable=1,location=1,scrollbars=1,width=976,height=505');
winRef.close();
winRef.open(seccionUrl, '', 'menubar=0,resizable=1,location=1,scrollbars=1,width=976,height=505');
},
error: function (XMLHttpRequest) {
HideLoading();
eval(XMLHttpRequest.responseText);
}
});
}
});
}
答案 0 :(得分:1)
只要操作完成,只需在新窗口中调用window.close()
即可。的 See this demo (click). 强>
在这个演示中,我的新窗口只是等待,然后自行关闭:
setTimeout(function() {
window.close();
}, 1000);
但是,您可以改为使用ajax成功回调:
$.ajax({
url: 'some/path',
success: function() {
window.close();
}
});
答案 1 :(得分:0)
仅用于测试目的,您可以这样使用alert
:
winRef = window.open(data.Url + data.Token.....);
alert(data.Token); //<-----here
winRef.close();
或者您可以这样使用setTimeout
:
winRef = window.open(data.Url + data.Token.....);
setTimeout(function(){
winRef.close();
winRef.open(seccionUrl, '',...);
},2000);