JQuery ajax()完成/失败回调在状态200时未返回
JQuery ajax() done / fail callbacks not returning upon status 200
我正试图使用JQuery将表单数据发布到远程servlet。我可以看到服务器接收数据,还返回状态代码200和"{result:‘success’}"的响应字符串但是ajax调用不会返回done或fail函数(如果我添加了一个always函数,我可以看到它正在被调用)以下是客户端的代码片段:
`
var dataParams = 'email='+email+'&password='+password;
var url = 'http://127.0.0.1:8888/signup';
var jxhr = $.ajax({
type : "POST",
url : url,
data : dataParams,// serializes the form's elements.
dataType: "json",
done: function() {
console.log("done!");
hideSignUp();
showThankYou(); },
fail: function() {
console.log("fail!");
}
});
`
我好像错过了什么,但似乎找不到什么。请注意,我使用的是JQuery 1.8.3,因此不赞成使用成功。有什么想法吗?
尝试:
var url = "http://127.0.0.1:8888/signup";
var jxhr = $.ajax({
type : "POST",
url : url,
data : dataParams,// serializes the form's elements.
dataType: "json"
}).done(function() {
console.log("done!");
hideSignUp();
showThankYou();
}).fail(function(jqXHR, textStatus) {
console.log(textStatus);
});
尝试链接回调,而不是将它们设置为对象字段:
$.ajax({
type : "POST",
url : url,
data : dataParams,// serializes the form's elements.
dataType: "json"
}).done(function (xhrResponse) {
console.log("done!");
hideSignUp();
showThankYou();
}).fail(function (xhrResponse, textStatus) {
console.log(textStatus);
}).always( function () {
console.log("I'm done with this.");
});
通过链接您的回调,您可以保证至少执行一个(完整的)回调。
相关文章:
- AngularJS-状态更改时停止自动刷新页面
- Angular:如何在状态更改时调用scope方法
- Universal React/redux未在状态更新时呈现
- 在状态更改时动态更改标头的内容
- 当移动设备从睡眠状态唤醒时重新加载网页
- React.js:如何使内联样式在状态更改时自动更新进度条
- 在状态解析时在角度 ui 路由器中注入库
- 获得readyState为4和状态200加上状态文本“0”;OK”;而成功函数仍然没有;我没有接到电话
- React在状态更改时丢弃排队的事件
- 使用php的Ajax,获取状态200,但readyState为0
- 当网络显示200时处理404
- 在应用程序加载和 angularjs 中的每个状态更改时调用 jquery 插件
- 为什么 $scope.getList() 在 $scope.showList 的状态更改时被调用
- 当存储状态更改时,React 组件不会更新
- 在 ui 路由器状态更改时运行 javascript 函数
- 在状态更改时发送带有状态数据的 AJAX 请求
- Backbone.js只有在服务器成功(200状态)时才会添加到集合中
- ajax后调用MVC动作时,我使用[授权]给出状态:200错误
- 如何抑制javascript错误时,xmlhttp.状态!= 200
- JQuery ajax()完成/失败回调在状态200时未返回