Zope:Script(Python)内で RESPONSE.setHeader() が効かない
2007.11.10
ajaxからのリクエストに対して JSON 形式のデータを返す Python-Scriptを作りました.
そのスクリプト内で RESPONSE.setHeader('Content-Type', '....') を使ってもその内容が無効になってしまい,実際のレスポンスヘッダ(response header)に反映されません.
Zope-2.8.8 の以下のソースコードの中を探してみたのですが原因がわかりませんでした.
Product/PythonScript/Script.py
Shared/DC/Scripts/{Scripts.py,Bindings.pyBindingsUI.py}
ZPublisher の中で何かしているんでしょうか.
仕方が無いので以下のadhocな手法で回避しました.元のScript(Pytnon)のオブジェクト名は foo_script とします.
1. foo_script -> do_foo_script と rename
2. 以下の内容の DTMLMethod を foo_script の名前で作成.
<dtml-call "RESPONSE.setHeader('Content-Type', #本当は1行 'text/plain; charset=utf-8')"> <dtml-var "do_foo_script()">DTMLMethodで dtml-call で記述した RESPONSE.setHeader は効果有りなんです,なぜでしょう??
カテゴリー:技術情報メモ