我服务的一些用户希望能够通过浏览器中的 javascript 访问我们的 REST API(需要用户凭据)。由于与违反同源策略相关的所有漏洞,我通常不会允许这样做。但是,如果特定用户需要它并了解正在发生的事情......我希望将他添加到“可以进行跨源请求”白名单中。
但是,我无法弄清楚如何根据 http 授权信息有选择地返回 Access-Control-Allow-Origin 标头。
如果我在 javascript 中执行此操作:
$.ajax({'url':'url', 'beforeSend': function (xhr) { xhr.setRequestHeader("Authorization", "Basic " + 'base64encodedcreds' ) } })
浏览器首先发送一个没有 Authorization 标头的 ORIGIN METHOD 请求。因此,我无法知道是否应该在响应中包含 Access-Control-Allow-Origin。
xmlhttprequest 中是否有一些设置可以让它发送带有授权的 ORIGIN?还是有另一种方法可以选择性地授予跨域访问权限?