我试图通过HTML的方式调用我的API进行数据库检查,这样当我单击按钮时,它将调用API,然后检查数据库以获得正确的结果并相应地输出。到目前为止,我并不完全确定如何做到这一点,并尝试了这个


 < div id =“login”> 
 < h1>欢迎回来了!< / h1>

 < form action =“http:// localhost:3000 / api / login”method =“post”>

 < div class =“field-wrap”>
 <标签>
用户名< span class =“req”> *< / span>
 < /标签>
 < input type =“userID”required autocomplete =“off”/>
 < / DIV>

 < div class =“field-wrap”>
 <标签>
密码< span class =“req”> *< / span>
 < /标签>
 < input type =“Password”required autocomplete =“off”/>
 < / DIV>

 < p>< button class =“button button-block”>登录< / button>< / p>

 < /形式>

 < / div>



 请注意,这仅用于登录检查数据库是否存在该用户和密码。这只是我项目的测试。在我的js文件中,


 $(document).ready(function(){
 $(“p”)。click(function() {
 var settings = {
“async”:true,
“url”:“http:// localhost:3000 / api / login”,
“method”:“ POST“,
”headers“:{
”content-type“:”application / json“,
”cache-control“:”no-cache“,
}, 
“processData”:false,
“data”:“{\ n \ t \”用户名\“:\”John \“,\ n \ t \”密码\“:
 \“密码\”\ n}“
}
 $ .ajax(设置).done(函数(响应){
 console.log(响应);
}); 
});
});



 我尝试过使用AJAX但它仍然会重定向到主页所以我决定尝试使用< form action =“http:// localhost:3000 / api / login”method =“post”>
来查看它是否会检查数据库但是它虽然它应该是正确的,因为它在数据库中是不正确的。如果您需要更多细节,请告诉我。任何帮助表示赞赏!请注意,这不仅仅是为了进行实验验证。
答案 0 :(得分:1)
在表单中分配ID,并为各个控件分配名称和ID。
<form method="POST" action="http://localhost:3000/api/login" id="loginform">
<input type="userID" id="userID" name="userID" required autocomplete="off"/>
.....
<input type="submit" id="submit" value="Log In">
</form>
Jquery代码。
将postvaruid
和postvarpwd
替换为实际的服务器参数。
$(document).ready(function(){
// Set form variable
var form = $('#loginform');
form.submit(function(event){
var userid = $('#userID').val();
var password = $('#password').val();
if ( $.trim(username) != '' && $.trim(password) != '') {
// Process AJAX request
$.post('http://localhost:3000/api/login',
{postvaruid: userid, postvarpwd: password }, function(data){
console.log(data);
});
}
// Prevent default form action
event.preventDefault();
});
});
请参阅this以了解表单提交回调函数
我写的内容与
类似$("#formid").submit(function( event ) {
alert( "Handler for .submit() called." );
event.preventDefault();
});
$.post实际上向服务器发出http post请求。
这是一个等同于下面的简写ajax调用
$.ajax({
type: "POST", <---Note this
url: url,
data: data,
success: success,
dataType: dataType
});
答案 1 :(得分:0)
首先,您应该添加一个事件监听器,以便在提交时进行监听。
document.getElementById("loginForm").addEventListener('submit', login);
function login() {
$.ajax(settings).done(function (response) {
console.log(response);
}
}
然而。确保传递给api的数据正确处理,以便进行验证。 猜猜你的api需要一些数据,作为参数传递给函数,inout字段必须具有name属性值作为代码中的相应参数。 如果代码背后是:
function login(string user, string userpswd) {
// Code here...
}
然后你的HTML应该是这样的:
<form id="myForm">
<input type="text" name="user" placeholder="Username" />
<input type="password" name="userpswd" requiered="required" />
</form>
作为一个例子。