2017-05-05 76 views
0

我有一段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.locationwindow.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); 
} 
+0

尝试'console.log'的URL值,以确认它是你希望它是和使用'window.top.location = url'代替 – Tareq

+0

您可以使用类似小提琴手,看看是否有样的要求是要什么在电线外面。 – RJM

回答