7

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)

私のクライアント アプリケーションは Angular JS で構築されています。ただし、リクエスト (GET リクエストを含む) を行うたびに、オプション リクエストが送信されます。このオプション リクエストには、リクエストに応じて 50 ~ 500 ミリ秒かかります。

API 呼び出しは " https://example.com/api/v1/posts/?page=1 (2, 3, 4...etc)"のようになります

このリクエストが行われる理由と、アプリケーションのパフォーマンスを向上させる方法について頭を悩ませる必要があります。

4

4 に答える 4

0

Access-Control-Allow-Originサーバーがプリフライトリクエストをリクエストするとき、サーバーは適切なヘッダーで応答することによりそのリクエストを許可する必要があります。サーバーは、に設定してリクエストを送り返す 必要がありContent-Typeます。

于 2015-02-24T17:57:35.950 に答える
0

これは、リクエスト元のブラウザが原因です。私はサーバー インスタンスとクライアントの両方を制御しているため、私の場合、クライアントの要求ヘッダーを "text/plain" に設定することができました。これにより、CORS プリフライト要件が処理されます。次に、サーバー側で rest_framework ソースを変更して、基本的に "text/plain" を JSON メディア タイプとして受け入れるようにしました。簡単な回避策ですが、これはすべての人に受け入れられるとは限りません。

于 2015-07-21T22:48:36.300 に答える