【问题标题】:jsonp in codeignitercodeigniter中的jsonp
【发布时间】:2011-07-26 22:22:00
【问题描述】:

我正在尝试让 jsonp 与 codeigniter 一起工作,我正在生成带有正确标头的标准 json ..

   $this->output
        ->set_content_type('application/json')
        ->set_output($json_data);
    }

所以为json设置了正确的header,使用上述方法生成的json没有问题..

现在使用 jquery ,我正在测试

<script>
  $(document).ready(function(){
  var url = "https://localhost/upload/latest/json/10&callback=?";
    $.getJSON(url,function(data) {
        alert(data);
    }); 
  });
  </script>

它不会显示任何警报

而 twitter 的 jsonp url 显示警报

<script>
  $(document).ready(function(){
  var url = "https://twitter.com/status/user_timeline/twitter.json?count=10&callback=?";
    $.getJSON(url,function(data) {
        alert(data);
    }); 
  });
  </script>

我已在配置中启用查询字符串。

$config['enable_query_strings'] = TRUE;

请指导我如何在codeigniter中设计jsonp的url..

谢谢...

【问题讨论】:

    标签: codeigniter cross-domain jsonp codeigniter-url


    【解决方案1】:

    我很确定你必须为 JSONP 返回这个,即调用指定的回调函数

    <?php header('content-type: application/json; charset=utf-8');
    
    $json = json_encode($data);
    
    echo isset($_GET['callback'])
        ? "{$_GET['callback']}($json)"
        : $json;
    

    【讨论】:

    • $_GET['callback'] 周围不应有任何大括号。删除它们,它很可能会正常运行。
    猜你喜欢
    • 2010-10-19
    • 1970-01-01
    • 2015-03-23
    • 1970-01-01
    • 1970-01-01
    • 2018-10-29
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    相关资源
    最近更新 更多