2011-09-02 55 views
0

我有一個腳本,用於使用Zend Framework從PHP返回一些JSON。未調用Zend Json_Encode和.getJson成功嗎?

這就是我回來的:[] {「Test」:「Tester」}但jQuery中的成功函數沒有被調用。不應該json是[{「Test」:「Tester」}]?

在我控制我這樣做:

echo Zend_Json::encode(array("Test" => "Tester")); 

客戶JS:

$.getJSON("/entry/get-projects", 
    { 
     "id": 1, 
     "format": "json" 
    }, 
    function(data, textStatus, jqXHR) { 

     alert("win"); 
    } 
    ); 
+0

如果我什麼都不返回,成功函數會觸發警報。 –

+0

嘗試使用螢火蟲的控制檯來查看Zend正在發送的內容以及它如何發送它。 –

+0

它在firebug中發回這個文本:[] {「Test」:「Tester」} –

回答

1

在你的行動,正在處理的JSON調用

$callback = $this->getRequest()->getParam('callback'); 
echo $callback . '(' . Zend_Json::encode(array('key' => 'value')) . ')'; 

在您的JS

var map = { 
    'key1' : val1, 
    'key2' : val2 
}; 

$.post('/some/ajax-action/', map, some_callback_function, 'json'); 

如果做不到這一點,你總是可以嘗試:

http://php.net/manual/en/function.json-encode.php 
echo json_encode(array('key' => 'value'));