【发布时间】:2014-04-11 21:43:12
【问题描述】:
我正在尝试获取 jsonp 格式的数据,以便可以使用 phonegap。但是在网络浏览器上它不起作用,并且控制台中没有显示错误。显然,代码一定有问题,但是因为我以前从未做过 jsonp 如果有人可以帮忙的话。 php接口
function airportlist_get() {
$this->load->database();
$sql = 'SELECT * FROM airport order by airport;';
$sql2 = 'SELECT COUNT(a_id) AS records FROM airport';
$query2 = $this->db->query($sql2);
$data2 = $query2->row();
$info->records = intval($data2->records);
$query = $this->db->query($sql);
$data = $query->result();
$info->airports = $data;
$callback = isset($_GET['callback']) ? preg_replace('/[^a-z0-9$_]/si', '', $_GET['callback']) : false;
header('Content-Type: ' . ($callback ? 'application/javascript' : 'application/json') . ';charset=UTF-8');
$json = json_encode($info);
$jsonp_callback = isset($callback) ? $json: null;
$this->response($jsonp_callback, 200);
}
Ajax 调用:
function Getairports(){
$.ajax({
url: 'http://creative.coventry.ac.uk/~airports/airports/v1.0/index.php/airport/airportlist',
dataType: 'jsonp',
success: function(data) {
$("#airportlist").empty();
$.each(data.airports,function(i,airport){
$('#airportlist').append('<li> <a href="#shopbyairport" data-transition="slide" onclick="Getshops('+airport.a_id+')">'+airport.airport+'</a></li>');
a_id = airport.a_id;
console.log(a_id);
});
$.mobile.changePage("#airports");
$('#airportlist').listview('refresh');
},
error: function (response) {
var r = jQuery.parseJSONP(response.responseText);
alert("Message: " +r.error.text);
}
}
)};
【问题讨论】:
标签: php jquery ajax json jsonp