$.ajax statusCode 函数从不接收参数

发布于 2025-01-08 09:11:14 字数 1992 浏览 0 评论 0原文

根据 官方 jQuery 文档

如果请求成功,状态码函数采用与成功回调相同的参数;如果导致错误,它们将采用与错误回调相同的参数。

但事实上并非如此。使用此代码:

    function saveCampagne (data){
        $.ajax({
            url : url,
            type : "GET",
            data : data,
            statusCode:{
                201 : function(campagne){
                    // JSON Decode
                    var Campagne = JSON.parse(campagne);
                    $("#zone-message").append('<div class="alert fade in" data-alert="alert"><a class="close" data-dismiss="alert" href="#">&times;</a><p><strong>C\'est Fait !</strong> La campagne a été ajoutée sous la référence #'+Campagne.id+'. Elle sera validée prochainement par un administrateur.</p></div>');
                    return Campagne;
                },
                200 : function(){
                    $("#zone-message").append('<div class="alert alert-error fade in" data-alert="alert"><a class="close" data-dismiss="alert" href="#">&times;</a><p><strong>Woops !</strong> Une erreur est survenue dans la création de la nouvelle campagne. Merci de ré-essayer ultérieurement.</p></div>');
                }
            },
            success : function(campagne){
            },
            error : function(){
                $("#zone-message").append('<div class="alert alert-error fade in" data-alert="alert"><a class="close" data-dismiss="alert" href="#">&times;</a><p><strong>Woops !</strong> Une erreur est survenue dans la création de la nouvelle société. Merci de ré-essayer ultérieurement.</p></div>');
            }
        });
    }

我可以制作 .append 但该函数永远不会在我的 201 中获取数据(通过campagne传递,如 success ): function( Campagne){...}

知道为什么它不像文档所说的那样工作吗?

According to the official jQuery doc :

If the request is successful, the status code functions take the same parameters as the success callback; if it results in an error, they take the same parameters as the error callback.

But in fact, it's not. With this code :

    function saveCampagne (data){
        $.ajax({
            url : url,
            type : "GET",
            data : data,
            statusCode:{
                201 : function(campagne){
                    // JSON Decode
                    var Campagne = JSON.parse(campagne);
                    $("#zone-message").append('<div class="alert fade in" data-alert="alert"><a class="close" data-dismiss="alert" href="#">×</a><p><strong>C\'est Fait !</strong> La campagne a été ajoutée sous la référence #'+Campagne.id+'. Elle sera validée prochainement par un administrateur.</p></div>');
                    return Campagne;
                },
                200 : function(){
                    $("#zone-message").append('<div class="alert alert-error fade in" data-alert="alert"><a class="close" data-dismiss="alert" href="#">×</a><p><strong>Woops !</strong> Une erreur est survenue dans la création de la nouvelle campagne. Merci de ré-essayer ultérieurement.</p></div>');
                }
            },
            success : function(campagne){
            },
            error : function(){
                $("#zone-message").append('<div class="alert alert-error fade in" data-alert="alert"><a class="close" data-dismiss="alert" href="#">×</a><p><strong>Woops !</strong> Une erreur est survenue dans la création de la nouvelle société. Merci de ré-essayer ultérieurement.</p></div>');
            }
        });
    }

i'm able to make the .append but the function never get data (passed through campagne, like success ) in my 201 : function(campagne){...}

Any Idea why it's not working like the doc say how it's works ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

暗地喜欢 2025-01-15 09:11:14

尝试删除成功和错误处理程序。

Try removing the success and error handlers.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文