andernfalls ich ein Stück von JS-Code haben, die eine URL assembliert und setzt dann das Dokument Standort:wie debuggen document.location Anruf
var url = 'pi_configure_mls.cgi?token=' + params.token + '&ml_sourcekey=' + key;
document.location = url;
Wenn dieser Code ausgeführt wird, ist es einfach aktualisiert die Seite (oder zumindest zeigt die gleiche Seite, die ich auf bin)
Das seltsame ist, wenn ich die rohe URL nehmen und diese manuell in meiner Konsole eingeben.
document.location = url;
... es funktioniert! und ich bin auf die erwartete Seite gebracht.
Ich habe dies in einen Versuch/Fang verpackt, bestätigt, dass die URLs genau die gleichen sind, und ich kann nicht sagen, warum das passieren würde.
Hat jemand irgendwelche Tipps, wie man die Ursache für den Unterschied im Verhalten feststellen kann?
UPDATE 1:
ich die URL aus der Anrufprotokollierung und es passt, was ich erwarte:
pi_configure_mls.cgi?token=NEH727&ml_sourcekey=edelivery&choosetags=bc_p_2
ich auch die Navigation auf die neue URL sehen protokolliert, wenn window.location
und window.top.location
mit:
Wenn ich in meinen Python-Logs auf dem Server nachschaue, sehe ich keinen Treffer auf pi_configure_mls_cgi
aber ich sehe es schlagen pi_select_cgi
so weiß ich, dass der Python ist nicht der Schuldige hier.
UPDATE 2:
Auch die gesamte Bereitstellung absolute URL fehlschlägt (im Code, die Konsole nicht):
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:
keine URL in der Code wird funktionieren, unabhängig davon, was es ist. Ich mache die Logging-Anweisung nach dem Standort Versuch in dem Code sehen, als ob es gelungen:
try {
window.top.location = 'total_garbage!!!';
console.info('HEY WE WENT SOMEWHERE!'); //I see this logged
}
catch (e) {
console.info('this failed!' + e);
}
versuchen Sie, den url-Wert zu "console.log" zu bestätigen, um zu bestätigen, dass es das ist, was Sie wollen und verwenden Sie 'window.top.location = url' stattdessen – Tareq
Sie könnten etwas wie Fiddler verwenden, um zu sehen, ob irgendeine Art von Anfrage geht über den Draht hinaus. – RJM