Я получаю следующую ошибку при вызове AJAX на моем веб-хостинге:
Status: parsererror: Error: SyntaxError: Unexpected end of JSON input
Этот скрипт отлично работает при локальном тестировании с использованием XAMPP, возвращает данные без проблем. Есть несколько кнопок, которые пользователь может нажать, которые в данный момент сделают AJAX-вызов. Некоторые функции работают нормально, другие, похоже, ничего не возвращают после запуска этих скриптов на нашем провайдере веб-хостинга.
Это пример одного из вызовов AJAX:
function vesselajax(){
$.ajax({
url: 'vesselajax.php',
method: 'GET',
data: {},
dataType:'json',
success: function(data){
document.getElementById("vesseltable").innerHTML = '<tr><th>FCM</th><th>Hull ID</th><th>Manu ID</th><th>Name</th><th>Manufacturer</th><th>Length</th><th>Year</th><th>Value</th><th>Owner</th><th>Loss Payee</th><th>Base</th></tr>' + data;
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("Status: " + textStatus); alert("Error: " + errorThrown);
}
});
}
Вот код из vesselajax.php
<?php
require 'login.php';
$connection = new mysqli($host, $user, $pword, $database, 3306);
if ($connection ->connect_error) die($connection ->connect_error);
$query = "select v.vessel_table_id, v.vessel_fcm, v.vessel_hull_id, v.vessel_name, v.vessel_length, v.vessel_manufacturer, v.vessel_manufacturer_id, v.vessel_year, v.vessel_value, o.owner_name, l.loss_payee_name, b.base_name
from vessel v
join owner o
on o.owner_id = v.owner_id
join loss_payee l
on l.loss_payee_id = v.loss_payee_id
join base b
on b.base_id = v.base_id";
$result = $connection->query($query);
if ($result->num_rows > 0) {
$counter = 1;
$data = "";
while($row = $result->fetch_assoc()) {
$_SESSION['vti'] = $row['vessel_table_id'];
$data .= "<tr><td>". $row["vessel_fcm"]. "</td><td>". $row["vessel_hull_id"]. "</td><td>". $row["vessel_manufacturer_id"]. "</td><td>". $row["vessel_name"]. "</td><td>". $row["vessel_manufacturer"]. "</td><td>". $row["vessel_length"]. "</td><td>". $row["vessel_year"]. "</td><td>". $row["vessel_value"]. "</td><td>". $row["owner_name"]. "</td><td>". $row["loss_payee_name"]. "</td><td>". $row["base_name"]. "</td><td>"."<a href='removevessel.php?vti=".$_SESSION['vti']."'><button type='button' rel='tooltip' title='Remove' class='btn btn-danger btn-simple btn-xs'><i class='fa fa-times'></i></button></a><button name='".$_SESSION['vti']."' id='".$counter."' onclick='editvesselnow(this.name,this.id);' type='button' rel='tooltip' title='Edit' class='btn btn-warning btn-simple btn-xs'><i class='fa fa-edit'></i></button>"."</td></tr>";
$counter++;
}
echo json_encode($data);
} else {
echo "<div class='header'>0 results</div>";
}
$connection->close();
?>
Прежде чем вы упомянете что-то о готовых утверждениях, я сейчас проверяю:)
Эти сценарии отлично работают локально, извлекая все связанные данные, но при загрузке в веб-среду вышеуказанная ошибка генерируется только для нескольких из этих вызовов AJAX. Большинство из них очень похожи на то, что я показываю ниже.
Любой совет?