gpt4 book ai didi

javascript - 如何中止 http 拦截器中的请求?

转载 作者:行者123 更新时间:2023-12-02 16:57:44 25 4
gpt4 key购买 nike

在应用程序中,我的 api 具有以下 url 结构:

// public
public/url-xyz

// private
dashboard/url-xyz

了解这一点,并尝试保存不必要的请求:取消请求的最佳方法是什么?到目前为止我尝试过的是:

angular.module('mymod').factory('httpInterceptors', function ($injector, $q, httpBuffer)
{

return {
request: function (config)
{
var url = config.url;
if (url.match('/dashboard/')) {
// immediately cancel request
var canceler = $q.defer();
config.timeout = canceler.promise;
canceler.reject(config);

// logout and go to login-page immediately
// ...
}

// request config or an empty promise
return config || $q.when(config);
}
};
});

但这可能会导致 $ressource 出现问题,因为如果它的请求被这样取消,它需要一个数组并获取一个对象作为响应。

最佳答案

您应该能够返回$q.reject([reason])

angular.module('mymod').factory('httpInterceptors', function ($injector, $q, httpBuffer)
{

return {
request: function (config)
{
var url = config.url;
if (url.match('/dashboard/')) {
// immediately cancel request
return $q.reject(config);

// logout and go to login-page immediately
// ...
}

// request config or an empty promise
return config || $q.when(config);
}
};
});

关于javascript - 如何中止 http 拦截器中的请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26045953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com