微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – Amplifyjs和状态代码

我正在尝试使用“Amplifyjs”来处理AJAX请求,就像John Papa在他的Pluralsight课程中一样,但我遇到了身份验证方面的问题.

我正在使用表单身份验证.一切正常.

我的问题来自未经身份验证的请求.我找不到一种方法让“amplifyjs”回复错误函数http代码(401,403 …)来区分失败的请求,因为它们没有通过因未满足业务逻辑而失败的请求进行身份验证.

请求示例如下:

amplify.request.define("products", "ajax", {
                url: "/api/Products",
                datatype: "json",
                type: "GET"
            });
amplify.request({
                    resourceId: "products",
                    success: callbacks.success,
                    error: function (datos, status) {
                              //somecode
                           }
                });

谢谢.

解决方法:

如果需要XHR对象并将其传递,则可以创建解码器.它将包含您可能需要的错误代码和其他信息.

amplify.request.define("products", "ajax", {
    url: "http://httpstat.us/401",
    datatype: "json",
    type: "GET",
    decoder: function ( data, status, xhr, success, error ) {
        if ( status === "success" ) {
            success( data, xhr );
        } else if ( status === "fail" || status === "error" ) {
            error( status, xhr );
        } else {
            error( status, xhr );
        }
    }
});

amplify.request({
    resourceId: "products",
    success: function(data, status) {
        console.log(data, status);        
    },
    error: function(status, xhr) {
        console.log(status, xhr);
    }
});​

您可以通过查看此http://jsfiddle.net/fWkhM/来测试上述代码

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐