2017-09-15 3 views
0

更新:新しい情報があるので質問を書き直してください。編集内容に履歴が表示されます。
OPTIONS(ステータスが0のレスポンス)のリクエストでCORSが失敗する

発行導入は、私はdjango-rest-frameworkアプリケーションがサブドメインapi.nrzonline.nl上で実行されています。フロントエンドng2 + webpackアプリケーションがドメイン​​上で実行されています。 APIにng2-restangularでリクエストを送信するとき、私は私のコンソールに次のエラーが表示さ:

zone.js OPTIONS http://api.nrzonline.com/project/ net::ERR_EMPTY_RESPONSE 
EXCEPTION: Response with status: 0 for URL: null 

現在の問題
をカールとかなりのテストの後、私はすべての要求をするときプリフライト失敗することがわかりましたOPTIONSでのリクエストが送信されます。適切-X GET作品と

要求:-X OPTIONS

curl 'api.nrzonline.nl/skill/' -X GET 
[{"id":1,"category":{"id":1,"title":"skill-a",...}] 

(プリフライト)要求は、Djangoの開発サーバ上のAPIでこの-x OPTIONS要求がローカルになく動作実行応答なし

curl 'api.nrzonline.nl/skill/' -X OPTIONS 
curl: (52) Empty reply from server 

で失敗します問題の

サーバーの設定

  • CORS_ORIGIN_ALLOW_ALL = True
  • CORS_ALLOW_METHODS
  • CORS_ALLOW_HEADERSOPTIONSがデフォルトであることができ、デフォルト、上にある

ミドルウェア:

私はサーバがHTTPSリクエストが必要ですが、現在アクティブな無SSL証明書がないことが可能であることを読んだことがある

  • を試してみましたが、何

    。 (source)けれども、私の代わりに-H "Content-Type: text/plain"application/jsonsource (comment on answer)

text/plain質問
私が間違っている/何をしないのですようリクエストを送信--insecurecurlsource

  • にしようとしませんでした、-X OPTIONSのプリフライトが失敗しています。可能な解決策のヒント、説明、または参照は歓迎します。

  • 答えて

    0

    回答クレジットは問題がDirectAdmin関連していた兄、私のウェブサイトのホスティング事業者

    に行きます。デフォルトでは、DirectAdminはGET,POSTおよびHEADしか許可しません。 OPTIONSは、問題を修正する必要があります追加

    if ($request_method !~ ^(GET|HEAD|POST)$) { 
        return 444; 
    } 
    

    これらの設定は、次のようにinclude /etc/nginx/webapps.conf;で発見されています。任意のリクエストメソッドを許可するために、コードブロックを削除またはコメントアウトします。

    ただし、/etc/nginx/webapps.confを変更すると、新しいHTTPD更新中にDirectAdminがこのファイルを上書きする可能性があります。ファイル<path_to_directadmin>/custombuild/costum/nginx/confを使用してconfファイルを生成します。ここで変更を加えると、調整が失われないようにする必要があります。

    関連する問題