2013-07-29 51 views
-1

我正在研究一個CakePHP 2.x應用程序並試圖實現JSONP。這是我第一次,所以我不知道我怎麼可以這樣做:JsonP和CakePHP

$(function(){ 
$.getJSON("https://www.example.com/myweb/api/getjsonp&jsoncallback=?", 
function(data){ 
    console.log(data); 
    } 
    ); 

     }); 

控制器:

public function getjsonp(){ 

$id = $this->Auth->user('idUser'); 
$messages = $this->Contact->getMessages($id); 


$totalmessages = json_encode($messages); 
echo $_GET['jsoncallback'] . '(' . $totalmessages . ')'; 

}

的代碼是行不通的。我錯過了什麼嗎?

回答

0

也許你沒有在PHP中打開此 嘗試的PHP文件的頂部添加以下代碼

標題(「訪問控制允許來源:*」);

+0

這究竟是什麼?我正在Cakephp上工作,所以這是正確的? – hellosheikh

0

您可能不會呈現正確的佈局/視圖。有關使用Json和Xml視圖,請參閱this page

步驟:

  1. 添加Router::parseExtensions('json');router.php文件。
  2. 在您的(App)Controller中加載RequestHandlerComponent
  3. 創建一個View(名爲app/View/Api/json/getjsonp.ctp)。
  4. 填充View有:

    <?php 
    $totalmessages = json_encode($messages); 
    echo $_GET['jsoncallback'] . '(' . $totalmessages . ')'; 
    
  5. $messages從控制器這樣的:

    public function getjsonp() { 
        $id = $this->Auth->user('idUser'); 
        $messages = $this->Contact->getMessages($id); 
    
        $this->set(compact('messages')); 
    } 
    
  6. 更改URL來源:

    https://www.site.com/myweb/api/getjsonp&jsoncallback=?

    https://www.site.com/myweb/api/getjsonp.json&jsoncallback=?

    請注意.json

+0

我沒有得到documnentation ...沒有任何例子..純粹的英語012純粹的英語 – hellosheikh

+0

沒有任何例子ok讓我試試你的例子 – hellosheikh

+0

不工作...當我在瀏覽器中輸入的網址..它無法找到類 – hellosheikh