私はhttps
介して内部でdoccanoを提供しています。 以前はhttp
を介して提供していましたが、すべて正常に機能しましたが、 https
に切り替えてデータの新しいページに注釈を付けようとすると、コンソールでこのエラーが発生します。
xhrリクエストは常にhttp経由で行われているため、コンテンツはデフォルトでブロックされているようです。
コードが両方のプロトコルで機能することを確認できますか?
document_classification.js:1 Mixed Content: The page at 'https://doccano.example.com/projects/4/#' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://doccano.example.com/v1/projects/4/docs?doc_annotations__isnull=&limit=5&offset=5&q='. This request has been blocked; the content must be served over HTTPS.
(anonymous) @ document_classification.js:1
e.exports @ document_classification.js:1
e.exports @ document_classification.js:1
Promise.then (async)
s.request @ document_classification.js:1
s.<computed> @ document_classification.js:1
(anonymous) @ document_classification.js:1
search @ document_classification.js:8
nextPage @ document_classification.js:8
t @ document_classification.js:14
Pr.t._withTask.o._withTask @ document_classification.js:14
document_classification.js:1 Uncaught (in promise) Error: Network Error
at e.exports (document_classification.js:1)
at XMLHttpRequest.d.onerror (document_classification.js:1)
問題の原因となっているフェッチはDjangoRest Frameworkのページ付けリンクであり、DjangoサーバーはHTTPSの背後でホストされていることを認識していないようです。 クライアント側のhttpsがページ付け(構成の変更)で機能するようにするには、 SECURE_PROXY_SSL_HEADERを設定する必要がある場合があります。
または、VueでDRFページ付けから受け取ったURLを後処理し、リンクで指定された明示的なオリジンの代わりに、常にフロントエンドオリジンを使用してリクエストを行うこともできます(コード変更)。
@ armanrahman22と@fnoceraは、上記の2番目のアプローチを実装するプルリクエストに取り組んでいます。 修正はすぐに準備ができているはずです。
https://github.com/chakki-works/doccano/pull/328は、混合コンテンツの問題を修正し
最も参考になるコメント
@ armanrahman22と@fnoceraは、上記の2番目のアプローチを実装するプルリクエストに取り組んでいます。 修正はすぐに準備ができているはずです。