にカスタムヘッダーを追加することができません:)私は(レンダリングから返される応答にカスタムヘッダーを追加することができません応答
response = render(request, 'my_template.html', {'ctx1': 1, 'ctx2': 2})
response['My-Custom-Header'] = 'abc12345'
return response
これは、jQueryの$.get()
を使用して開始したAjaxリクエストへの応答です。 Chromeでは、レスポンスにテンプレートが正しく表示されますが、カスタムヘッダーはありません。返す前にresponse
オブジェクトを印刷すると、私のカスタムヘッダーがあることがわかります。
私は、問題は、this answerのだと思ったので、私はすべての応答にヘッダを追加するためにDjangoのミドルウェアを追加しました:
class CustomHeaderMiddleware():
def process_response(self, request, response):
response['Access-Control-Expose-Headers'] = 'My-Custom-Header'
return response
すべての私の回答は今ヘッダーAccess-Control-Expose-Headers: My-Custom-Header
を持っているが、私はまだこの問題を参照してください。
私のリクエストはローカルです。私はDjango開発Webサーバーを使用しています。
私が非Ajax GETリクエストを送信した場合、Djangoで追加したカスタムヘッダーはChromeの応答に表示されます。だから、この問題はAjaxリクエストに限られているようです。
私はDjango 1.11.4とPython2を使用しています。
[編集]
私はWireSharkの中に応答をキャプチャする場合、私はそれがMy-Custom-Header
を持っていないことがわかります。さらに、上記のミドルウェアの応答辞書にカスタムヘッダーを追加すると、ヘッダーがWiresharkに表示され、Chromeに表示されます。だからこれはDjangoの問題で、Ajaxリクエストへの応答と思われます。