我有一段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