2009-06-21 13 views
4

私はajax uploader とZend Frameworkを使用しています。jsonの問題(zendフレームワークを持つvalums ajax uploader)

問題は、onSubmitのjson応答を使用しているときです。 With $this->getHelper('Json')->sendJson($data); 私はsaveasダイアログのみを取得します。

問題は、すべてのレスポンスが "text/html"であることを期待していますが、jsonヘルパーはmimetypeとして "application/json"を送信することです。

通常の応答では、すべての問題はうまくいきますが、スクリプトにいくつかの情報を送り返す必要があります。

私はどのようにmimetype "text/html"でjsondataを送信するべきかをZendに伝えることができますか?

答えて

3

response objectを使用して応答に影響を与えることができます。あなたのコントローラ内から:

$content = Zend_Json::encode(array('Foo' => 'Nice', 'Bar' => 'Vice')); 
$this->getResponse() 
    ->setHeader('Content-Type', 'text/html') 
    ->setBody($content) 
    ->sendResponse(); 
exit(); 
+0

これはsendJson()アクションヘルパーを使用しませんが、そのメソッドのいずれかのオプションがありません。 Zend_Json :: encode()を使用してデータをエンコードし、このメソッドを使用して自分で送信します。 – Kekoa

+0

ありがとうKekoa、注目され、組み込まれています。 – karim79

+0

で有効なjsonコードを出力するには、最後の行を次のように変更する必要があります。 ' - > setBody($ content)'とadd: ' - > sendResponse(); exit(); 'そうでなければ、Zendはデフォルトのスタイルでjsonデータを囲みます。 – user63371

1

さらに別の変形

echo Zend_Json::encode(array('result' => true)); 
exit; 
関連する問題