में अनधिकृत त्रुटि हैंडलिंग मैं अंगुलरजेएस में बहुत नौसिखिया हूं, और अब 401 स्थिति को संभालने के लिए एक रास्ता खोजने में 3 दिन खर्च कर रहा हूं। मैंने $ संसाधन का उपयोग करके $ http का उपयोग करके इंटरसेप्टर की कोशिश की है ... लेकिन कुछ भी काम नहीं कर रहा है। मेरा ऐप एक ही सर्वर पर JSONP कॉल को कॉल करता है। जब त्रुटि होती है तो यह त्रुटि कॉलबैक फ़ंक्शन में पकड़ा जाता है। लेकिन स्थिति हमेशा 0 होती है और प्रतिक्रिया अपरिभाषित होती है।401 एंगुलरजेएस
पहले, मैं इस इंटरसेप्टर
app.config(['$httpProvider', function($httpProvider) {
$httpProvider.responseInterceptors.push(['$q', function($q) {
return function(promise) {
return promise.then(function(response) {
console.log('success in interceptor');
return response;
}, function(response) {
console.log('error in interceptor');
console.log(response);
if (response.status === 401) {
response.data = {
status: false,
description: 'Authentication required!'
};
return response;
}
return $q.reject(response);
});
}
}]);
}]);
दूसरा, यह भी $ संसाधन
$scope.fetchData = function(fromDate, toDate){
Cancel.get({from: fromDate, to: toDate, perPage: 99999},
function(data){
$scope.cancels = $scope.filteredCancels = data.data;
$scope.search();
},
function(response) {
$scope.errorMessage = '<h4>Error : '+response.status+'</h4>';
window.location = "/";
});
};
तीसरा, $ संसाधन के बजाय $ http का उपयोग कर की कोशिश की का उपयोग कर नियंत्रकों में करने की कोशिश की कोशिश की
$scope.fetchData = function(fromDate, toDate){
$http.jsonp('http://host:8900/api/cancellations?callback=JSON_CALLBACK')
.success(function(data, status, headers, config) {
console.log(status);
})
.error(function(data, status, headers, config) {
console.log(status);
};
JSONP कॉल
के लिए हेडर जानकारी यहां दी गई हैRequest URL:http://host:8900/api/cancellations?callback=angular.callbacks._0
Request Method:GET
Status Code:401 Unauthorized
Request Headersview source
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-GB,en-US;q=0.8,en;q=0.6
Cache-Control:max-age=0
Connection:keep-alive
Cookie:__utma=149207145.339724205.1374885003.1377550245.1378313049.3; __utmc=149207145; __utmz=149207145.1378313049.3.2.utmcsr=cyphersmart.qc3deva.electricmail.com:8900|utmccn=(referral)|utmcmd=referral|utmcct=/; remember_username=elie.kim%40electricmail.com; PHPSESSID=gdoemlp5jltqq62etc5gfuh653; cookie=cookiecheck; __utma=1.789184132.1378340585.1378499390.1378504453.10; __utmb=1.3.10.1378504453; __utmc=1; __utmz=1.1378340585.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
Host:host:8900
Referer:http://host:8900/reports/cancels/
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Ubuntu Chromium/25.0.1364.160 Chrome/25.0.1364.160 Safari/537.22
Query String Parametersview sourceview URL encoded
callback:angular.callbacks._0
Response Headersview source
Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection:keep-alive
Content-Type:application/json; charset=utf-8
Date:Fri, 06 Sep 2013 22:02:13 GMT
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive:timeout=20
Pragma:no-cache
Server:nginx/0.7.65
Transfer-Encoding:chunked
मुझे अनधिकृत स्थिति 401 को संभालने का कोई तरीका नहीं मिला, हालांकि मैंने सभी चीजों को बांध लिया। अगर मुझे टिप या दयालु सलाह मिल सकती है तो इसकी बहुत सराहना की जाएगी।
अगर आप ब्राउज़र में अपने यूआरएल पर नेविगेट करें, क्या होता है? – akonsu
आप कोणीय का किस संस्करण का उपयोग कर रहे हैं? यह महत्वपूर्ण है क्योंकि 'प्रतिक्रिया इंटरसेप्टर' 1.2 – TheSharpieOne
@TheSharpieOne में बदल गया है मेरा संस्करण v1.0.6 है। क्या यह कारण है? –