带有自定义头的CORS GET:是否有可能摆脱OPTIONS

CORS GET with custom headers: is it possible to get rid of OPTIONS

本文关键字:有可能 是否 OPTIONS GET 自定义 CORS      更新时间:2023-09-26

我正在做一个CORS请求(从角资源),它执行飞行前的选项调用。我有自定义标题行,我想这就是它被调用的原因。

然而,我想知道如果我可以设置的东西,使自定义头(我们称之为X-Auth-Token)不生成OPTIONS请求?或者它是设置在石头的行为为任何自定义头?

OPTION请求正在触发服务器上的一些事务,我想摆脱它

如果您的请求有自定义请求头,那么是的,这是一个固定的行为,您必须有一个预飞行请求。然而,如果你可以摆脱自定义标题,你可以消除预飞行。一种方法是将X-Auth-Token头移动到其他地方,比如查询参数。这个问题讨论了如何减少预飞行请求:如何将CORS预飞行缓存应用到整个域

还要注意,OPTIONS请求应该是幂等的。如果你的OPTIONS请求也在服务器上改变状态,我会考虑修复这个问题,并以正确的方式支持飞行前请求。web上的任何用户都可以触发对任何服务器的预飞行请求,因此您应该确保您的服务器受到保护。

还不能评论,所以我将把它作为一个答案发布:

你应该看看这个问题。您可以使用白名单特性强制关闭OPTIONS:

myApp.config(['$sceDelegateProvider', function($sceDelegateProvider) {
    $sceDelegateProvider.resourceUrlWhitelist(['self', 'http://mhnystatic.s3.amazonaws.com/**', 'http://mhnystatic2.s3.amazonaws.com/**']);
}])