I was confused about this for a while. Here's how I now understand it:
According to the W3C, there are actually three possible values for the crossorigin
attribute: anonymous
, use-credentials
, and an "missing value default" that can only be accessed by omitting the attribute. (An empty string, on the other hand, maps to anonymous
.) The default value causes the browser to skip CORS entirely, which is the normal behavior I was expecting.
The crossorigin
attribute should only be used if we care about getting error information for the script being loaded. Since accessing this information requires a CORS check, the Access-Control-Allow-Origin
header must be present on the resource for it to be loaded.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…