我的控制台日志未输出任何内容。它是javascript文件的开头,因此我不知道为什么它不记录任何内容。
否则,我会收到302“错误”,但我认为问题出在服务器端。
最后,ajax帖子没有被写入数据库。由于我以前从未使用过AJAX,因此欢迎使用任何指针。
注意:我使用Mikrotik作为HotSpot,并且使用$(美元符号)作为自己的用途,所以我不能使用JQuery。
感谢所有帮助。
这是整个代码,照原样...
<!DOCTYPE html>
<html>
<head>
<title>HotSpot</title>
</head>
<body>
<!-- Hotspot login form -->
<form name="hotspot" action="$(link-login-only)" method="post" id="hotspot"
$(if chap-id) onSubmit="return doLogin(); return false;" $(endif)>
<input type="hidden" name="dst" value="$(link-orig)" />
<input type="hidden" name="popup" value="true" />
<input type="hidden" name="username" type="text" value="HSuser" />
<input type="hidden" name="password" type="password" value="SimpleUserPassword" />
</form>
<!-- Mail for which gets inserted into the DB -->
<form name="mail" action="http://some.domain/validate-sanitize.php" method="post" id="mail">
<h1>Hotspot</h1>
<h2>To gain internet access, enter your email.</h2>
<br />
<input type="text" id="email" name="email" autofocus="autofocus" />
<br />
<input type="submit" value="Submit" id="submit_ok" name="submit_ok" /> <br />
</form>
<script rel="javascript" type="text/javascript">
document.getElementById("submit_ok").addEventListener("click", SendAjax);
function SendAjax() {
var email = document.getElementById("email").value;
console.log(email);
// Check if fields are empty
if (email=="") {
alert("Please enter your email.");
}
// AJAX code to submit form
else{
var xhr = new XMLHttpRequest();
xhr.open('POST', '$(link-login-only)', true);
xhr.send("dst=$(link-orig)&popup=true&username=HSuser&password=SimpleUserPassword");{
setTimeout(function(){
console.log("Fired " + email);
document.getElementById("submit_ok").submit();}, 500 );
}
}
}
</script>
</body>
</html>
答案 0 :(得分:1)
这不能回答您的问题,仍然会显示结果。
尝试将console.log(email);
替换为alert(email);
。
您尝试过其他浏览器吗?
答案 1 :(得分:0)
问题出在Mikrotik。登录设置为CHAP(使用salt进行密码身份验证),但未实现此方法。仍然不知道为什么会导致console.log问题,但是确实如此。