因此,我的解決方案最終添加了一個完全由腳本組成的中間頁面,以重定向瀏覽器的頂層。我從
JavaScript post request like a form submit
<body>
<script type="text/javascript">
function post_to_url(path, params, method) {
method = method || "post"; // Set method to post by default if not specified.
// The rest of this code assumes you are not using a library.
// It can be made less wordy if you use one.
var form = document.createElement("form");
form.setAttribute("method", method);
form.setAttribute("action", path);
form.setAttribute("target", "_top")
for(var key in params) {
if(params.hasOwnProperty(key)) {
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", key);
hiddenField.setAttribute("value", params[key]);
form.appendChild(hiddenField);
}
}
document.body.appendChild(form);
form.submit();
};
window.onload = post_to_url('{% url "shop_paypal_redirect" %}',
{csrfmiddlewaretoken: '{{ csrf_token }}',
result: '{{ result }}'});
</script>
</body>
所以,如果你是重定向整個頁面這個腳本,會在iframe重定向什麼以後? – Drewness
基本上,您需要在返回iframe的頁面中使用javascript,才能在頂級瀏覽器窗口中加載新url(也可以使用元標記完成) – Anentropic
訂單完成頁面上不會有iframe。 –