Jquery 带CakePHP的JsonP

Jquery 带CakePHP的JsonP,jquery,json,cakephp,jsonp,cakephp-2.1,Jquery,Json,Cakephp,Jsonp,Cakephp 2.1,我正在开发一个CakePHP2.x应用程序,并试图实现JSONP。这是我第一次,所以我不知道该怎么做: $(function(){ $.getJSON("https://www.example.com/myweb/api/getjsonp&jsoncallback=?", function(data){ console.log(data); } ); }); 控制器: public function getjsonp(){ $id =

我正在开发一个CakePHP2.x应用程序,并试图实现JSONP。这是我第一次,所以我不知道该怎么做:

$(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 . ')';
}


代码不起作用。我遗漏了什么吗?

也许你还没有用php打开它 尝试在php文件的顶部添加此代码

标题(“访问控制允许原点:”


您可能没有呈现正确的布局/视图。请参见关于使用Json和Xml视图的说明

步骤:

  • 添加
    Router::parseExtensions('json')
    到您的
    router.php
    文件
  • (应用程序)控制器中加载
    RequestHandlerComponent
  • 创建一个
    视图
    (名为
    app/View/Api/json/getjsonp.ctp
  • 用以下内容填充
    视图

    <?php
    $totalmessages = json_encode($messages);
    echo $_GET['jsoncallback'] . '(' . $totalmessages . ')';
    
  • 将url更改为:

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

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

    请注意
    .json


  • 这到底是什么?我正在做一个Cakephp所以这是正确的吗?我没有得到文件。。。这里没有任何例子,只有简单的英语解释是行不通的。。。当我在浏览器中键入url时。。它找不到你添加的类路由器::parseExtensions('json')
    ?是的,我添加了。。。当我尝试将我在问题中编写的代码的url输入浏览器时。。我可以看到结果。机器人不在firebug的控制台选项卡中。。。但是您的代码没有编码。它不会指向正确的url
    public function getjsonp() {
      $id = $this->Auth->user('idUser');
      $messages = $this->Contact->getMessages($id);
    
      $this->set(compact('messages'));
    }