我正在尝试构建一个phonegap应用程序,其中我使用AJAX GET将坐标从服务器端PHP脚本传递到客户端javascript。我对AJAX POST没有任何问题,但GET给了我一些问题。每当我尝试使用dataType:“jsonp”进行GET时,我都会收到一个javascript控制台警告:
资源解释为脚本,但使用MIME类型text / html传输......
考虑到我可以完全控制服务器端脚本,所以我可以将数据转换为JSON,这很奇怪。服务器是否有可能不支持JSONP(文档说它支持JSON,它是一个免费的主机!)。我已经尝试添加各种标题到PHP脚本,但似乎不起作用。此外,我正在使用chrome纹波仿真器以防万一这是相关的。
我已经看过各种类似的问题,但我似乎无法深入了解它。
无论如何,这是我的代码和任何帮助将不胜感激。
PHP片段(我从mysql表中提取一些数据但这一切都正常工作):
$info = array(
'lat' => $row[LAT],
'lng' => $row[LNG],
'id' => $row[ID]
);
echo json_encode($info);
相关的javascript代码:
$.ajax({
type: "GET",
url: "http://whereto.bugs3.com/name.php",
dataType: 'jsonp',
jsonp: 'callback',
jsonpCallback: 'jsonpCallback',
success: function(data) {
alert(data.lng);
}
});
提前致谢
答案 0 :(得分:1)
您需要使用“jsonpCallback”函数包装输出以成为jsonp(带填充的json)
echo 'jsonpCallback(' . json_encode($info) . ');';