Il 99% delle mie chiamate ajax richiede uno specifico "X-API-TOKEN" per l'autenticazione e la comunicazione con la mia API REST Rails. Ma sto anche facendo una chiamata a un'API di terze parti e continuo a ricevere un errore che dice "Il campo di intestazione della richiesta X-API-TOKEN non è consentito da Access-Control-Allow-Headers."Come rimuovere le intestazioni predefinite solo per richieste XHR specifiche in AngularJS?
Tutto funziona bene se delte l'intestazione a destra prima della chiamata, e un lavoro in giro sarebbe da eliminare e quindi aggiungere nuovamente dopo la chiamata, ma c'è un modo più semplice di così:
apiToken = $http.defaults.headers.common["X-API-TOKEN"]
delete $http.defaults.headers.common["X-API-TOKEN"]
$http(
method: "GET"
url: 'http://...}}'
).success((data, status, headers, config) ->
).error (data, status, headers, config) ->
$http.defaults.headers.common["X-API-TOKEN"] = apiToken
Questa soluzione è buona per supponiamo di avere una sola chiave, ma cosa succede se abbiamo più intestazioni personalizzate e avere più tali chiamate API esterna in cui non abbiamo bisogno queste intestazioni. Possiamo ottenere questo utilizzando transformRequest? –