我有一段JS代码是组装一个URL,然后设置文件位置:如何调试失败document.location呼叫
var url = 'pi_configure_mls.cgi?token=' + params.token + '&ml_sourcekey=' + key;
document.location = url;
运行此代码时,它只是刷新页面(或至少说明在同一页我在)
奇怪的是,当我把原始URL,并在我的控制台手动输入此:
document.location = url;
...它的作品!我被带到预期的页面。
我在一个try/catch这个包裹,确认网址是完全一样的,我不知道为什么会发生这种事。
有没有人对如何确定行为差异的原因任何提示?
更新1:
我记录从通话的URL和它匹配我的期望:
pi_configure_mls.cgi?token=NEH727&ml_sourcekey=edelivery&choosetags=bc_p_2
我使用window.location
和window.top.location
时也看到导航到新的URL登录:
Navigated to https://www.some.site.of.mine.com/pi_select.cgi
在查看我的python日志服务器上,我没有看到任何命中pi_configure_mls_cgi
但我看到它击中pi_select_cgi
所以我知道蟒蛇是不是这里的罪魁祸首。
更新2:
即使提供整个,绝对URL失败(在代码中,不控制台):
window.top.location = 'https://www.some.site.of.mine.com/pi_configure_mls.cgi?token=NEH727&ml_sourcekey=edelivery&choosetags=bc_p_2'
UPDATE 3:
在没有URL代码将起作用,不管它是什么。我看到logging语句在代码中的位置的尝试之后,如果它成功了:
try {
window.top.location = 'total_garbage!!!';
console.info('HEY WE WENT SOMEWHERE!'); //I see this logged
}
catch (e) {
console.info('this failed!' + e);
}
尝试'console.log'的URL值,以确认它是你希望它是和使用'window.top.location = url'代替 – Tareq
您可以使用类似小提琴手,看看是否有样的要求是要什么在电线外面。 – RJM