我正在做一个这样的项目:(HTML Forms(AJAX)+ twitter bootstrap)(solo HTML,没有 JSP 等)->Servlets(在 Google App Engine-JAVA 上)->Persistence(Google Cloud SQL) .
我对 jQuery ajax 调用很陌生,但我理解这个过程,因为我习惯于编写旧的 XHR 代码。下面是 JS 中的函数,它不会写入控制台预期的结果..到目前为止,大多数时候表单数据都是持久化的。我的 Servlet 如果没问题,并输出一个有效的 JSON。(在浏览器上调用 URL 总是按预期工作。)
我的回答是为什么 jQuery ajax 回调(完成,失败,总是)不能正常工作?他们确实写入控制台/显示警报()。谢谢你的时间!
$(document).ready(function() {
var myEmail = "";
var myGender = "";
$('#saveButton').click(function() {
$('#myform').submit();
//alert('Handler for .submit() called.');
myEmail = document.getElementById("inputEmail").value;
window.console.log('EMAIL---->' + myEmail);/*ok log!*/
//alert('EMAIL->' + myEmail);
var radioObj = document.forms['myForm'].elements['gender'];
myGender = getCheckedValue(radioObj);
window.console.log('GENDER---->' + myGender);/*ok log!*/
//alert('GENDER->' + myGender);
var jqXHR = $.ajax({
statusCode : {
404 : function() {
alert("404 ERROR - page not found");
}
},
url : "/newuser",
type : "GET",
timeout : 10000,
data : {
email : myEmail,
gender : myGender,
operation : '0'
},
done : function(data, textStatus, jqXHR) {
window.console.log('done -> RESPONSE---->' + data);/*this does not log!*/
alert(data);
},
fail : function(jqXHR, textStatus, errorThrown) {
window.console.log('always -> RESPONSE---->' + data); /*this does not log!*/
alert(data);
},
always : function(data, textStatus, jqXHR) {
window.console.log('always -> RESPONSE---->' + data); /*this does not log!*/
alert(data);
}
});
});
});