angular.js - Bagaimana untuk mengkonfigurasi pemintas http dalam angularjs untuk menghantar semula permintaan apabila menghadapi respons 404
PHP中文网
PHP中文网 2017-05-15 17:02:16
0
1
500

Pada masa ini saya hanya boleh melompat ke halaman ralat apabila permintaan mengembalikan 404

    //    创建拦截器
    app.factory('Http404Interceptor', function ($q)
    {
        return {
            responseError: function (response)
            {
                if(response.status == 404){
                    location.href = appURL.fullUrl + 'error';
                }
                return $q.reject(response);
            }
        }
    });
    
    //    配置拦截器给app
    app.config(function ($httpProvider)
    {
        $httpProvider.interceptors.push('Http404Interceptor');
    });

Tetapi keperluan semasa adalah untuk memulakan semula permintaan ke pautan lain (seperti: a.php) apabila permintaan mengembalikan 404. Bagaimanakah saya harus menulisnya supaya pemintas dapat merealisasikan fungsi ini?

PHP中文网
PHP中文网

认证高级PHP讲师

membalas semua(1)
漂亮男人

Pembetulan:

Apakah maksud "minta pautan lain (seperti: a.php)"? Minta api lain untuk mendapatkan data sebagai fallback?

Jika itu maksudnya, bukankah ia agak mudah:

//    创建拦截器
//之前忘了这里还有个循环依赖的问题,我去
app.factory('Http404Interceptor', function ($q, $injector)
{
    return {
        responseError: function (response)
        {
            if(response.status == 404){
                var $http = $injector.get('$http');
                return $http.get('anotherUrl');
            }
            return $q.reject(response);
        }
    }
});
    
//    配置拦截器给app
app.config(function ($httpProvider)
{
    $httpProvider.interceptors.push('Http404Interceptor');
});
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan