我只是在https.get函数没有产生错误的情况下尝试提交asp.net登录表单。如果它返回错误,我不希望提交登录表单。当我调用e.preventDefault()时,登录页面只刷新而不记录用户。
为什么会这样?
var loginForm = $('form');
var https = require("https");
var url = 'https://examplesite.com/';
loginForm.on('submit', function (e) {
var loginSubmit = this;
e.preventDefault();
https.get(url, function (res) {
res.resume();
loginSubmit.submit();
}).on('error', function () {
// display error, do not login
});
});
答案 0 :(得分:0)
我假设loginForm
是jQuery中的实际形式,$('form')。这与您函数中的loginSubmit
相同。
看看,当引发submit()事件时,你调用里面的函数,再次调用loginSubmit.submit()
。这是一个问题吗?
您可以尝试将该功能绑定到提交按钮的点击事件。
需要有关res.resume()
的更多信息。你可以告诉我们loginForm
变量来自何处?
更新:
我会绑定到提交按钮的click事件。
$(document).on('click','btn#submit', function(e){
e.preventDefault();
// make the get call
$.get(url)
.done(function(){
// success callback => submit the form.
$('form').submit();
})
.fail(function(){
// fail callback => display error.
});
});
我对你的https
电话不太了解。我也不清楚你的res.resume()
。但是你现在应该有一些线索。