CORS 默认禁用,因此如果您不希望给定主机获得响应,请不要将它们添加到服务器返回的 CORS Access-Control-Allow-Origin 标头中
访问控制允许来源:https ://www.example.com
如果主机向您的服务器发出请求并且它们未在此标头中列出,则它们将在其预检请求中收到错误响应。
带有 CORS 的 nginx 配置示例如下所示
server {
listen 80;
server_name api.example.com;
location / {
# Simple requests
if ($request_method ~* "(GET|POST)") {
add_header "Access-Control-Allow-Origin" "https://example.com";
}
# Preflighted requests
if ($request_method = OPTIONS) {
add_header "Access-Control-Allow-Origin" "https://example.com";
add_header "Access-Control-Allow-Methods" "GET, POST, OPTIONS, HEAD";
add_header "Access-Control-Allow-Headers" "Authorization, Origin, X-Requested-With, Content-Type, Accept";
return 200;
}
# Handle request
}
}
此外,规范中关于预检请求错误的重要说明:
CORS 失败会导致错误,但出于安全原因,JavaScript 代码无法提供有关问题的详细信息。所有代码都知道发生了错误。确定具体出了什么问题的唯一方法是查看浏览器的控制台以获取详细信息。
https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS