Sto utilizzando la jersey come mia implementazione di API riposante. Nel front-end, sto usando il servizio $ http di angularjs per fare una richiesta http. Quando richiedo un metodo di eliminazione, ho sempre ricevuto un errore.Sempre ottenuto Il metodo DELETE non è consentito da Access-Control-Allow-Methods nella risposta di preflight
"Method DELETE is not allowed by Access-Control-Allow-Methods in preflight response."
Ho letto alcuni articoli e dicono che ho bisogno per consentire eliminare il "Access-Control-Allow-Metodi". Ho impostato il filtro di risposta come sotto ma ha ancora tale problema. Cos'altro dovrei fare?
@Provider
public class CORSResponseFilter implements ContainerResponseFilter {
@Override
public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {
MultivaluedMap<String, Object> headers = responseContext.getHeaders();
headers.add("Access-Control-Allow-Origin", "*");
headers.add("Access-Control-Allow-Methods", "*");
}
}
sotto è il mio codice angolare per effettuare la richiesta:
$http({
method: 'DELETE',
url: remoteUrl,
headers : {'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8',
'ACCESS_TOKEN' : $cookieStore.get("access_token")
},
data : $httpParamSerializer({
'id':id
})
}).success(function(data,status,headers,config) {
$scope.refreshDepartments();
console.log(data);
alert("success");
}).error(function(data,status,headers,config){
console.log(data);
alert("error");
});
Avete registrato il provider nel vostro 'web.xml' o classe di applicazione? – Casey
Sto usando spring-boot e funziona con altri metodi come GET, POST. Fallito solo su DELETE –