Ster inactiefSter inactiefSter inactiefSter inactiefSter inactief
 

Access-Control-Allow-Origin

Header Set Access-Control-Allow-Origin

Het beperken van de mogelijke Access-Control-Allow-Origin waarden voor een reeks toegestane oorsprongen vereist code aan de serverzijde om de waarde van de Origin request header te controleren, die te vergelijken met een lijst met toegestane originelen en vervolgens als de waarde van Origin in de lijst, om de waarde Origin request header in te stellen op dezelfde waarde als

Zindsbouw Header Set Access-Control-Allow-Origin

Access-Control-Allow-Origin: *
Access-Control-Allow-Origin: <origin>
Access-Control-Allow-Origin: null

Richtlinen Access-Control-Allow-Origin

*

Voor verzoeken zonder inloggegevens kan de letterlijke waarde "*" worden opgegeven als wildcard; de waarde geeft browsers de requesting om code van elke herkomst toe te staan voor toegang tot de resource. Als u probeert het Wildcard met referenties te gebruiken, resulteert dit in een fout.

<origin>

Een antwoord dat de browser vertelt om allow code van elke origin toe te staan om toegang te krijgen tot een resource, omvat het volgende:

selecteren, kopiëren en plakken in uw .htaccess bestand

Header alway set Access-Control-Allow-Origin: "*"

Een antwoord dat de browser vertelt om requesting code van de oorsprong https://developer.mozilla.org toe te staan om toegang tot een resource te krijgen, omvat het volgende:

Header alway set Access-Control-Allow-Origin: https://developer.mozilla.org

Het beperken van de mogelijke Access-Control-Allow-Origin-waarden voor een reeks toegestane origins requires code aan de serverzijde om de waarde van de Origin request header te controleren, die te vergelijken met een lijst met toegestane Origin en vervolgens als de waarde van Origin in de lijst, om de waarde Access-Control-Allow-Origin in te stellen op dezelfde waarde als de waarde Origin.

CORS en Caching

Als de server een response verzendt met een Access-Control-Allow-Origin waarde die een expliciete origin is (in plaats van het "*" wildcard), moet het response ook een Vary response header bevatten met de waarde Origin - om aan browsers aan te geven dat serverreacties kunnen verschillen op basis van de waarde van de Origin-header.

Header alway set Access-Control-Allow-Origin: https://developer.mozilla.org
Header alway set Vary: "Origin"
CORS op de server gebruiken (Java-voorbeeld)

De volgende Java-code stelt CORS-antwoordheaders in. Merk op hoe de code de waarde Access-Control-Allow-Origin instelt op dezelfde waarde als de koptekst van het Origin request header.

Dit is een .JS bestand JavaScript

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@component
public class SimpleCORSFilter implements Filter {

private final Logger log = LoggerFactory.getLogger(SimpleCORSFilter.class);

public SimpleCORSFilter() {
log.info("SimpleCORSFilter init");
}

@override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {

HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With, remember-me");
chain.doFilter(req, res);
}

@Override
public void init(FilterConfig filterConfig) {
}

@Override
public void destroy() {
}

}

Ga naar boven