我正試圖訪問數據跨域(本地測試),但數據無法加載。使用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