2017-09-17 31 views
0

にカスタムヘッダーを追加することができません:)私は(レンダリングから返される応答にカスタムヘッダーを追加することができません応答

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リクエストへの応答と思われます。

答えて

0

この問題はAjaxとは関係ありません。私はthis template tagを使って私の意見を呼んでいた。カスタム応答ヘッダーは、そのコードの32行目のために失われます。

関連する問題