Этот вопрос связан с:
Но я снова спрашиваю об этом, потому что решение в этом вопросе очень уродливо, и я думаю, должно быть лучше.
ПРОБЛЕМА
Когда вы отправляете данные с помощью jQuery Ajax на PHP с помощью POST, вы получаете строки "false" (string) вместо false (bool), "true" вместо true (bool) и "null" вместо NULL:
РЕШЕНИЕ
(предлагается в вышеуказанном вопросе):
конвертировать данные в JSON, прежде чем отправлять его с помощью jQuery, а затем декодировать эти данные на PHP.
С кодом:
Код Javascript:
$.ajax
(
{
url : <server_url>,
dataType: 'json',
type : 'POST',
success : receiveAjaxMessage,
data : JSON.stringify
(
{
valueTrue : true,
valueFalse: false,
valueNull : null
}
)
}
);
PHP-код:
var_dump(json_decode(file_get_contents('php://input'), true));
Мне это не решение, только уродливое взломать.
Проблема в моей ситуации заключается в том, что я не могу использовать file_get_contents ('php://input') для доступа к $_POST, тем более, я не могу использовать $_POST, потому что я использую HMVC.
И я знаю, что могу исправить это, проверяя эти "ложные", "истинные" и "нулевые" в PHP или отправляя 1 и 0 в true и false в jQuery.
Но я думаю, что это, должно быть, очень распространенная проблема, и jQuery - очень распространенная структура, поэтому я уверен, что есть лучший и элегантный способ отправить данные с правильным типом в jQuery.