Dire che è necessario includere un parametro GroupId per ogni richiesta effettuata dall'utente, ma non desidero modificare ogni chiamata di servizio per includerla. È possibile rendere quel GroupId aggiunto automaticamente a tutte le richieste, che si tratti di stringa di query POST o GET?
ho cercato nella funzione intercettore request
, ma non riesco a capire come fare il cambiamento
** Modifica **
campione di lavoro in corso al di sotto è un combo di Morgan Delaney e haimlit di suggerimenti (penso che sia comunque un combom). L'idea di base è che se la richiesta è un POST, modificare config.data
. Per GET, modificare params
. Sembra funzionare finora.
Ancora non è chiaro come funziona il sistema provider in Angular, quindi non sono sicuro che sia del tutto appropriato modificare le proprietà data.params qui.
.config(['$httpProvider', function ($httpProvider) {
$httpProvider.interceptors.push(['$rootScope', '$q', 'httpBuffer', function ($rootScope, $q, httpBuffer) {
return {
request: function (config) {
if (config.data === undefined) {
//Do nothing if data is not originally supplied from the calling method
}
else {
config.data.GroupId = 7;
}
if (config.method === 'GET') {
if (config.params === undefined) {
config.params = {};
}
config.params.GroupId = 7;
console.log(config.params);
}
return config;
}
};
} ]);
} ]);
è possibile creare un servizio di collegamento e chiamarlo qualcosa come 'shortcut.get (url, dati)' che accodare tutti i dati di configurazione per poi tornare il ' promessa $ http. http://stackoverflow.com/questions/17497006/use-http-inside-custom-provider-in-app-config-angular-js –
Ecco un collegamento con esempi utili. Se ancora non riesci a farlo funzionare, inserisci un plunker con quello che hai provato, per favore. http://www.webdeveasy.com/interceptors-in-angularjs-and-useful-examples/ – haimlit
@Morgan Delaney Grazie. Ho aggiornato la mia domanda sul modo in cui la sto attualmente lavorando. Il modo in cui ho avuto conseguenze negative rispetto al modo in cui hai suggerito? – Cabbagesocks