ich zusätzliche Operation ausgeführt werden soll, bevor HTTP-Request aufrufen (Ajax GET und POST)Griff Ajax-Aufruf AngularJS mit
Angenommen, ich habe folgenden Code:
function CallHTTP()
{
$.ajax({
url: '/abcd/abcd',
type: 'POST',
success: function() {
alert("Success");
},
error: function (arg1, arg2, arg3) {
alert("error");
}
});
}
$(document).ready(function() {
CallHTTP();
});
i oben Anfrage mit AngularJS Interceptor behandeln möchten . ist es möglich ?
Ich habe versucht, folgende:
angular.module('app', [])
.config(['$httpProvider', function ($httpProvider) {
$httpProvider.interceptors.push(['$location', '$q', function ($location, $q) {
return {
'request': function (request) {
console.log("abcd");
return request;
},
'responseError': function (response) {
if (response.status === 401) {
console.log("abcd2");
// do stuff
}
console.log("abcd1");
// otherwise, default behaviour
return $q.reject(response);
}
};
}]);
}]);
aber obige Code nicht ausgeführt, wenn geschieht Ajax-Aufruf. Wie erreiche ich das?
Danke.
Ein Interceptor fängt einen Request/Response-Austausch ab, führt ihn aber nicht aus. Sie müssen '$ http' verwenden. https://docs.angularjs.org/api/ng/service/$http – sjahan
Wenn Sie dies mit jquery tun möchten, verwenden Sie jquery ajax events: $ (document) .bind ("ajaxSend", function() {console .log ('vor Anfrage');}); https://api.jquery.com/Ajax_Events/ –