Wenn ich versuche, Daten in meine CGI-Datei zu veröffentlichen, sagt meine CGI-Datei, dass die tatsächlichen Post-Daten ungültig ist. Ich verwende HTML/JavaScript für das Frontend und Python für das Backend.POST-Daten in CGI-Datei mit XMLHttpRequest verursacht BadHeader
Works:
<form name="login" action="/cgi-bin/register.py" method="POST">
Username:<input type="text" name="username"><br>
Password:<input type="password" name="password"><br>
Confirm password:<input type="password" name="confirmpassword"><br>
</form>
Dies verursacht jedoch die Seite zu aktualisieren. Ich versuche, dies zu vermeiden und Text auf derselben Seite anzuzeigen (ohne neu zu laden). Daher habe ich entschieden, ein XMLHTTPRequest zu verwenden, um dieses Ereignis asynchron zu verarbeiten.
Dies ist, was ich erreichen will:
<script>
function validateLogin()
{
var username = document.getElementById("username").value;
var password = document.getElementById("password").value;
if (username.length <= 0 || password.length <= 0)
{
document.alert("The username or password cannot be blank");
return;
}
var xmlhttp;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else {// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("resultText").innerHTML=xmlhttp.responseText;
}else if (xmlhttp.readyState==4) {
document.write(xmlhttp.status + xmlhttp.statusText);
}
}
xmlhttp.open("POST","/cgi-bin/login.cgi",true);
xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8')
xmlhttp.send("username=" + username + "&password=" + password);
}
</script>
CGI Datei:
#!/usr/bin/python
import cgi
from dbmanager import openConnection
from passlib.hash import sha256_crypt
s = "Content-type: text/html\n\n\n"
form = cgi.FieldStorage()
username = form["username"].value
password = form["password"].value
message = None
ich einen Fehler in Python immer unter Angabe Bad header=FieldStorage(None, None,
ich, wenn nicht diesen Fehler Ich mache es auf die erste Art, aber die zweite Art gibt mir diesen Fehler. I brauchen es auf die zweite Weise zu arbeiten.