BreezeJS拦截服务器响应

时间:2016-04-26 15:17:03

标签: asp.net breeze

由于ASP.NET Identity 2.0存在问题,服务器返回HTTP 200并显示HTTP 400消息,我试图拦截它以便将用户重定向到登录页面。这是我的代码,但似乎该网站不再进展。我知道这个问题已在ASP.NET Identity 3.0中得到解决,但它现在不是一个选项。关于下面代码的任何想法?

var ajaxAdapter = breeze.config.getAdapterInstance('ajax');

ajaxAdapter.requestInterceptor = function (requestInfo) {
requestInfo.success = function (response) {
    // process response message here.
    return response;
}};

1 个答案:

答案 0 :(得分:0)

我最后通过将原始成功函数分配给变量然后在我自己的代码之后调用它来解决这个问题:

var ajaxAdapter = breeze.config.getAdapterInstance('ajax');

ajaxAdapter.requestInterceptor = function (requestInfo) {
var oldSuccessFn = requestInfo.success;

requestInfo.success = function (data, statusText, jqXHR) {
    if (data.Message == "Authorization has been denied for this request.") {
        signOut();
    } else {
        var result;
        oldSuccessFn.call(result, data, statusText, jqXHR);
        return result;
    }
},