这是我遇到的一个非常奇怪的问题。
我有一个登录表单,此登录表单验证您的数据并在登录成功时呈现配置文件布局如果登录不是,则呈现注册页面。
<form id="login-nav" action="/login" method='POST' role="form" accept-charset="UTF-8" class="form">
<div class="form-group">
<label for="username" class="sr-only">Utilizador</label>
<input id="username" type="username" placeholder="Nome de utilizador" required="" class="form-control" name="username">
</div>
<div class="form-group">
<label for="exampleInputPassword2" class="sr-only">Palavra-Passe</label>
<input id="password" type="password" placeholder="Meta a palavra-passe" required="" class="form-control" name="password">
</div>
<div class="checkbox">
<label></label>
<input type="checkbox">Gravar Dados
</div>
<div class="form-group">
<button id="botaoLogin" class="btn btn-danger btn-block">Fazer Login</button>
</div>
</form>
这很有效。
它起作用的唯一原因是因为它来自带有METHOD和ACTION的FORM
$("#pacotes").on('click', ".produto", function () {
var prod = this.id;
console.log(prod);
$.get("http://localhost:3000/pacote?idPacote=" + prod);
});
但是,我尝试用jQuery做同样的事情,因为我需要在按钮点击时为某些产品呈现Handlebars布局,
exports.Pacote = function (req, res) {
var pacote = req.query.idPacote;
connection.connection();
global.connection.query('SELECT * FROM Pacotes WHERE idPacotes = ? ', [pacote], function (err, result) {
if (result.length > 0) {
if (result) {
var object = JSON.parse(JSON.stringify(result));
var packObject = object[0];
console.log(result);
res.render('home', { title: 'pacote', layout: 'pacote', data: packObject });
} else if (err) {
console.log(err);
}
};
});
}
尽管查询工作正在给我data我请求
{{1}}
它根本不呈现布局,我不明白为什么。 执行像这样的POST请求或通过表单执行它有什么区别?
我不明白为什么这似乎只适用于表格。 我可以这样解决,但我不认为在我的所有按钮上使用空表格都是可行的解决方案。
答案 0 :(得分:0)
您只是在提出请求,而您没有处理返回值:
$.get("http://localhost:3000/pacote?idPacote=" + prod);
尝试更改为:
$.ajax({
method: 'GET',
url: "http://localhost:3000/pacote?idPacote=" + prod,
success: function(...) {...}
});