JSONP в Codeigniter - PullRequest
       4

JSONP в Codeigniter

0 голосов
/ 25 июля 2011

Я пытаюсь заставить jsonp работать с codeigniter, я генерирую стандартный json с правильным заголовком ..

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

, поэтому для json установлен правильный заголовок, и нет ничего плохого в json, сгенерированном с помощью вышеуказанного метода

Сейчас, используя jquery, я тестирую

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

это не будет показывать предупреждение

, тогда как URL-адрес jsonp в твиттере показывает предупреждение

<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;

, пожалуйста, объясните мне, как создать URL для jsonp в codeigniter.

Спасибо ...

1 Ответ

2 голосов
/ 25 июля 2011

Я почти уверен, что вы должны вернуть это для JSONP, то есть для вызова указанной функции обратного вызова

<?php header('content-type: application/json; charset=utf-8');

$json = json_encode($data);

echo isset($_GET['callback'])
    ? "{$_GET['callback']}($json)"
    : $json;
...