[英]callback function not executed in jquery
我正在学习在jquery中发送get请求。 以下是产生get请求的代码块。 我在我的servlet中检查了get请求是否成功,但是没有调用回调函数。 我无法弄清楚这个问题。
$.get('http://localhost:8080/PC_controlo/StatusServlet?id=1001',
function(data){
alert('hello');
});
浏览器网络选项卡显示了这一点
[01:21:26.759] GET http://localhost:8080/PC_controlo/StatusServlet?id=1001 [HTTP/1.1 200 OK 1ms]
+
这就是我在servlet中所做的。
PrintWriter out = response.getWriter();
out.write("Working");
out.close();
和.fail(msg){alert('失败并显示消息:'+ JSON.stringify(msg)); 给出了以下信息
Failed with message: {"readyState":0,"responseText":"","status":0,"statusText":"error"}
提前致谢 :)。
我用Google.com替换了网址做了一些测试,我遇到了同样的问题。 我注意到如果你使用.done(),. aways()和.error(),你可能会更好地确定究竟发生了什么。 看看这个JSFiddle:
$.get('http://www.google.com/')
.done(function(data) {
alert('Success! Data loaded: ' + data);
})
.fail(function(msg) {
alert('Failed with message: ' + JSON.stringify(msg));
})
.always(function() {
alert('Always Alerts');
});
最可能的情况是您的请求未成功完成,因此未调用成功处理程序函数回调,因为没有成功。
根据jQuery docs $.get
的成功处理函数是:(强调我的)
如果请求成功则执行的回调函数。
为了更好地控制AJAX请求的错误处理,通常建议使用$.ajax
,您可以在这里阅读文档 。 这将允许您使用error
回调,该error
回调将在请求因某些原因未完成时触发。
$.get
只是一个委托给$.ajax
的快捷方法。
为什么您的请求失败? 没有线索。 这是在您的浏览器和您正在与之交谈的服务器之间。 这可能是一百万件事。 检查浏览器开发控制台的网络选项卡,查看请求和响应的外观。
可能是与呼叫本身的通信错误,或者由于某种原因呼叫失败。 检查故障:
$.get('http://localhost:8080/PC_controlo/StatusServlet?id=1001')
.success(function(result) {alert('success'); })
.error(function(jqXHR, textStatus, errorThrown) {alert(textStatus) });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.