Amplify.js请求中未传递错误消息

时间:2012-10-27 18:27:28

标签: amplifyjs

我有使用amplify.js的代码:

amplify.request.define('data', 'ajax', {
        url: "WebService.asmx/HelloWorld",
        datatype: "json",
        type: "POST"
    });

amplify.request({
        resourceId: 'data',
        success: function(p1, p2, p3) {
            debugger;
        },
        error: function(p1, p2, p3) {
            debugger;
        }
    });

问题是服务器报告错误,然后在错误回调中,p1为空,p2为'错误'且p3未定义。

类似的jQuery.ajax正确填充这些参数。

$.ajax({
        type: "POST",
        url: "WebService.asmx/HelloWorld",
        success: function(p1, p2, p3) {
            debugger;
        },
        error: function(p1, p2, p3) {
            debugger;
        }
    });

我是否缺少Amplify.js配置才能使其正常工作?

2 个答案:

答案 0 :(得分:1)

点击此链接

Amplify Support Group

默认情况下不支持解析错误正文。我将不得不为此编写自己的解码器。

答案 1 :(得分:0)

默认情况下,放大使用Jsend解码器,您可以用自己的解码器替换。 这是我的简单解码器,它将响应体JSON对象传递给成功和错误回调:

amplify.request.decoders._default = function( data, status, ampXHR, success, error ) {

    if (status === "success") {
        success(data);
    } else {
        error(JSON.parse(ampXHR.responseText));
    }

}

PS。在此之前,请考虑调整您对jsend约定的api响应,请在此处阅读更多内容:http://labs.omniti.com/labs/jsend