Vous devez définir un filtre CORS sur votre backend. Je ne sais pas quel langage vous utilisez mais un exemple dans spring framework (java) serait le suivant.
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@Component
@Order(Ordered.HIGHEST_PRECEDENCE)
public class SimpleCorsFilter implements Filter {
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) res;
HttpServletRequest request = (HttpServletRequest) req;
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, PUT");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with, authorization, cache-control, content-type, Origin, key");
if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
response.setStatus(HttpServletResponse.SC_OK);
} else {
chain.doFilter(req, res);
}
}
@Override
public void init(FilterConfig filterConfig) {
}
@Override
public void destroy() {
}
}
En gros, vous affirmez que response.setHeader("Access-Control-Allow-Origin", "*");
peut provenir de n'importe quel domaine. (dans un environnement de production, vous limiteriez bien sûr cette possibilité à vos domaines connus).
En mettant en œuvre ce filtre, votre demande d'options passera sans problème.
L'appel d'options est quelque chose que le navigateur fait automatiquement et vous ne voulez vraiment pas le désactiver comme le suggèrent certaines autres réponses.
Bien à vous