我有一個註銷功能,在使用chrome時可以正確啓動。但是用Firefox,它並沒有。從我在Firefox中可以看出,foo.setAttribute("action", "../index.php");
沒有發生,因爲它在Chrome中正確無誤。它令我難以置信,因爲我無法真正在Firebug中調試這部分。從JavaScript註銷程序PHP和JavaScript - 「註銷」代碼適用於Chrome,但不適用於Firefox
<?php
require_once('/lock_down/php/db_login.php');
require_once('/lock_down/php/authenticate.php');
if (isset($_POST['action'])) {
$action = $_POST['action'];
} else {
$action = 'first_time';
}
switch($action) {
case 'first_time':
include('/lock_down/login.html');
break;
case 'login' :
$username = $_POST['uname'];
$password = $_POST['pword'];
if (http_login($username, $password)) {
include('/lock_down/file_server.html');
} else {
include('/lock_down/login.html');
}
break;
case 'logoff' :
$_POST = array();
echo "logged off";
include('/lock_down/login.html');
break;
default:
// include('/lock_down/php/login.php');
break;
}
?>
摘自file_server.html
:
case "logoutButton":
var form = document.createElement("form");
var foo = document.createElement("input");
foo.setAttribute("method", "post");
foo.setAttribute("type", "hidden");
foo.setAttribute("action", "../index.php");
foo.setAttribute("name", "action");
foo.setAttribute("value", "logoff");
form.appendChild(foo);
form.submit();
break;
同樣,所有的這部作品在鉻。但在Firefox中,它不會註銷並加載../index.php
。
爲什麼不使用GET? –