不调用成功回调函数

Success callback function is not called

我正在构建一个简单的 backbone 应用程序,我的视图中的成功回调函数有问题。 这是一个代码

    var EditUser = Backbone.View.extend({
        el: '.page',
        render: function(option){
            var that = this;
            if(option.id){
                that.user = new User({id : option.id});
                that.user.fetch({
                    success:function(user){
                        var template = _.template($("#edit-user-template").html());
                        that.$el.html(template({user: user}));
                    }
                });
            }else{
                var template = _.template($('#edit-user-template').html());
                that.$el.html(template({user: null}));
            }
        },
        events:{
            'submit .edit-user-form': 'saveUser',
            'click .delete': 'deleteUser'
        },
        saveUser: function(ev){
            var userDetails = $(ev.currentTarget).serializeObject();
            var user = new User();
            user.save(userDetails,{success: function(){
                router.navigate('',{trigger:true});
            },
            error: function(e){console.log(e);}
            });
            return false;
        },
        deleteUser:function(ev){
            this.user.destroy({
                success: function(){
                    router.navigate('',{trigger:true});
                }
            })
            return false;
        },
        wait:true
    });

在SaveUser函数上,query发送到服务器正确,但此后没有调用成功回调函数,用于导航到应用程序首页。 deleteUser 方法也会出现同样的问题。 任何想法是什么问题?谢谢!

这可能与您的服务器的响应类型有关,预期的响应是将在您的属性上设置的 JSON 对象,但如果响应与 "text" 不同, 解析失败。

这是一个 fiddle 用于使用模拟请求

的演示

https://jsfiddle.net/gvazq82/rdLmz2L2/1/:

$.mockjax({
  url: "hello.php",
  responseTime: 0,
  //responseText: 'A text response from mock ajax'
  responseText: '{"a": "a"}'
});

在此示例中,调用的错误函数在您的情况下并未发生,您的应用是否可能为 "Ajax" 调用定义了一些默认行为?

我需要更多信息才能确定此问题,但希望这能为您解决问题提供一些指导。