我正试图访问数据跨域(本地测试),但数据无法加载。使用JSONP创建回调
$.ajax({
type: 'POST',
url: 'http://localhost/php/ajax/json.php',
dataType: 'jsonp',
data: {action: 'get_json'},
success: function(data) {
console.log(data);
},
error: function() {
console.log("Error loading data");
}
});
PHP如下所示(函数通过文件中的switch语句调用)。
function get_json() {
$mysqli = db_connect();
$sql = "SELECT * FROM json_test";
$result = $mysqli->query($sql);
$rows = array();
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
array_push($rows, $row);
}
}
echo $_GET['callback']."(".json_encode($rows).");";
}
标题设置在PHP文档的开头。
header('Content-Type: application/json');
我收到了(如果我本身运行PHP文件)错误是Undefined index: callback
。这个错误之后,json字符串可以很好地作为文本回显。 (我也试过echo $_POST[...]
)。
如何获得此回调工作或如何正确定义它?任何帮助表示赞赏。
头部输出不正确,被浏览器视为脚本。 'jsonp'基本上是一个接收时执行的函数 – charlietfl 2015-01-21 03:00:30