Я использую AJAX для отправки инструкций в скрипт PHP, которые приводят к различным операциям с базой данных. В PHP-скрипте я вынуждаю HTTP-код ответа и текст причины. Часть PHP этой части работает, так как я вижу и код, и текст причины, когда изучаю заголовок в инструментах разработчика Chrome. Однако, вернувшись к вызову JQuery AJAX, я могу получить доступ только к коду состояния. Текст ответа всегда является общим.
Я пробовал много вариантов, найденных здесь и в других местах, но ни одно из исследованных мной свойств jqXHR не содержит текст ответа о пользовательском статусе, который PHP-скрипт отправляет обратно.
Я также попытался установить элементы управления доступом к заголовкам, как это было предложено в посте, который я нашел здесь, хотя я и не внедряю ничего междоменного. Это не дало результатов один раз, когда я пытался.
Вот вызов AJAX:
function set_logger_command(user_input)
{
$.ajax({
type: "POST",
url: './logger_cmd_processor.php',
data: {cmd_input:user_input},
statusCode:
{
201: function(responseObject, textStatus, jqXHR)
{
// Created (201)
// This code will be executed if a new log was successfully created
document.getElementById("status-container").innerHTML=jqXHR.status + " | " + textStatus;
document.getElementById("paper").innerHTML=jqXHR.responseText;
},
419: function(responseObject, textStatus, errorThrown)
{
// Service Unavailable (503)
// This code will be executed if the server returns a 503 response
alert(jqxhr.status);
}
}
})
А вот PHP, который устанавливает заголовок ответа:
// Sets the HTTP response status code and message
function set_http_response ($code,$message)
{
$phpSapiName = substr(php_sapi_name(), 0, 3);
if ($phpSapiName == 'cgi' || $phpSapiName == 'fpm') {
header('Status: '.$code.' '.$message);
} else {
$protocol = isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0';
header($protocol.' '.$code.' '.$message);
}
}
Например, если в PHP я установил заголовок ответа на «Статус: 201 таблица успешно создана!» Я ожидаю, что когда AJAX-вызов будет завершен, jqXHR.status будет иметь значение «201» (и это работает), а textStatus будет «таблица создана успешно».
Вместо этого textStatus просто содержит «Success»
Любое предложение или помощь будут оценены. Спасибо