Я пытаюсь получить доступ к перекрестному домену данных (тестирование локально), но данные продолжают не загружаться.Создание обратного вызова с помощью 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[...]
).
Как я могу заставить этот callback работать или как его правильно определить? Любая помощь приветствуется.
заголовок не подходит для вывода, который считается сценарием браузером. 'jsonp' - это в основном функция, которая выполняется при получении – charlietfl