Javascript 是否可以将请求头添加到CORS飞行前请求?

Javascript 是否可以将请求头添加到CORS飞行前请求?,javascript,http,browser,cors,xmlhttprequest,Javascript,Http,Browser,Cors,Xmlhttprequest,我有一个从外部服务器(而不是服务器)访问API的网站 通过普通的XmlHttpRequest(见下文)为网站提供服务。那个API 需要API密钥来访问要添加为请求头的服务。 然而,正如这些 请求浏览器首先执行飞行前请求以检查该服务器 支持CORS。现在,服务器似乎也希望看到API密钥 这些由浏览器完成的飞行前请求。有可能通过吗 飞行前请求的API密钥是否也存在 const-req=new-XMLHttpRequest(); 请求打开(“获取”https://some/api/endpoint")

我有一个从外部服务器(而不是服务器)访问API的网站 通过普通的
XmlHttpRequest
(见下文)为网站提供服务。那个API 需要API密钥来访问要添加为请求头的服务。 然而,正如这些 请求浏览器首先执行飞行前请求以检查该服务器 支持CORS。现在,服务器似乎也希望看到API密钥 这些由浏览器完成的飞行前请求。有可能通过吗 飞行前请求的API密钥是否也存在

const-req=new-XMLHttpRequest();
请求打开(“获取”https://some/api/endpoint");
setRequestHeader(“内容类型”,“应用程序/json;字符集=UTF-8”);
请求setRequestHeader(“x-api-key”,_-apiKey);
请求加载=()=>{
// ...
};
请求发送();

CORS飞行前
选项
请求完全由浏览器控制-因此无法向其添加任何请求标题。看见这就是为什么您向其发送请求的任何端点都必须配置为允许未经验证的
选项
请求,并用
200 OK
响应它们-至少只要您的请求触发预飞行(如果您添加任何自定义请求头,例如问题中的
x-api-key
头,它总是会这样).

服务器必须将已接受的标头列入白名单,飞行前响应声明是什么?