Django Rest Framework/Angular JS Preflight选项请求

Lfa*_*Lfa 7 javascript django angularjs django-rest-framework django-cors-headers

我使用Django REST Framework编写了一个API.对于身份验证,我使用的是django-oauth2-provider:https://github.com/caffeinehit/django-oauth2-provider

我在我的设置页面中配置了cors(使用Corsheaders中间件).

MIDDLEWARE_CLASSES = (
    ...
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
    ...
)

CORS_ORIGIN_ALLOW_ALL = True  # Dangerous (using for testing purposes)
Run Code Online (Sandbox Code Playgroud)

我的客户端应用程序是使用Angular JS构建的.但是,每次我们发出任何请求(包括GET请求)时,都会发出一个选项请求.此选项请求需要约50 - 500 ms,具体取决于请求.

api调用看起来像" https://example.com/api/v1/posts/?page=1(2,3,4 ......等)"

我需要了解为什么要提出此请求,以及如何提高应用程序的性能.

nik*_*d23 1

这里有两种跨越起源并注重性能的策略

它们归结为:

  1. 正确使用Access-Control-Max-Age
  2. 保持在“简单请求”的范围内