CGI スクリプトを呼び出す HTML ファイルがあります。ログアウトボタンをクリックすると、POST メソッドがすべてのフィールドを送信します。これは既知のバグですか?
ここに私のJavascriptコードがあります:
var request = null, session = null;
function postEscape(val) {
return encodeURIComponent(val).replace(/%20/g, "+")
}
function submit_logout() {
var request=null
if( !document.form.loggedIn.checked ) return
logout = new XMLHttpRequest()
logout.open("POST", "client.cgi", true /* asynchronous? */ )
logout.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
console.log("action=logout&session=" + postEscape(document.form.session.value)+"&host="+postEscape(document.form.host.value)+"&port="+postEscape(document.form.port.value))
logout.send("action=logout&session=" + postEscape(document.form.session.value)+"&host="+postEscape(document.form.host.value)+"&port="+postEscape(document.form.port.value)+"&action=logout")
form.loggedIn.checked = false
}
これは、POST データに表示されるものです。
username=&password=&host=somehost.com&port=6700&action=logout&display=++++&session=
ここに私のフォームがあります
<body>
<form name = "form">
<input name="username" size="25" type="text">username<br>
<input name="password" size="25" type="text">password<br>
<input name="host" size="25" type="text">host<br>
<input name="port" size="25" type="text">port<br>
<input name="login" value="Login" type="button" onclick="submit_login()"><input type="checkbox" name="loggedIn" id = "loggedIn" onclick="this.checked=!this.checked">
<input name="action" value="logout" type="submit" onClick="submit_logout()"><br>
<textarea name="display" rows="24" cols="68"> </textarea><br>
<input type="hidden" name="session" value="">
<input name="message" size="64" maxlength="64" type="text"><input name="send" value="send" type="button" onClick = "send()"><p></p>
</form>