У меня очень простой запрос ajax GET в jquery, который прекрасно работает на моем локальном тестовом сервере.Если я перенесу веб-страницу на хост-сервер (GoDaddy) вместе со службой php, произойдет сбой с textStatus = "error"
и errorThrown = ""
.Chrome отображает
net :: ERR_EMPTY_RESPONSE.
Все это происходит в течение 1 секунды, так что это не проблема тайм-аута.
Если я усекаю количество записей, чтобы возвращаемый json был меньше 1 МБ, он работает нормально.
Если я вызову код сервера с веб-страницы GoDaddy на свой локальный сервер для всех записей (1,8 МБ), то все тоже в порядке.Хороший возврат с любого сайта завершится менее чем за секунду.
Что может быть причиной того, что GoDaddy в основном не возвращает данных, если в эхо-файле json содержится более 1 МБ данных?
Подпрограмма сервера php:
if (isset($_REQUEST['_SESSION'])) die("Get lost Dweeb!");
error_reporting(E_ALL | E_STRICT);
header('Access-Control-Allow-Origin: *');
$date_code = $_GET['date_code'];
$region = $_GET['region'];
$chargers = array();
$chg_count = 0;
$ftime = filemtime("chargers.json");
if ($ftime != $date_code) {
$aTeslaChargers = json_decode(file_get_contents("chargers.json"),true);
foreach($aTeslaChargers as $aTeslaCharger) {
if ($aTeslaCharger['region'] == $region) {
$chargers[] = $aTeslaCharger;
$chg_count++;
//if ($chg_count > 1972) break;
}
}
}
$json = json_encode(array(array("date_code" => $ftime), $chargers));
echo $json;
Подпрограмма javascript:
var url = 'https://www.website.com/get_data.php?date_code=0®ion=north_america';
var jqxhr = $.ajax({
url: url,
type: "GET",
crossDomain: true
})
.done(function(response) {
console.log(new Date());
//var data = $.parseJSON(response);
//console.log(data);
console.log(response.length);
})
.fail(function(jqXHR, textStatus, errorThrown) {
console.log(new Date());
console.log(errorThrown);
});