У меня есть класс запроса, который должен получить данные после JSonfile_get_contents («PHP: // ввод» возвращает пустую строку
class Request
{
public $data;
public function __construct ()
{
$this->data = json_decode(file_get_contents("php://input"), true);
}
}
, когда я выполнить print_r($this->data)
, то print_r()
пуста, когда я выполнить var_dump()
содержание отображается как оно должно
это то, что я послал как запрос POST на сервер
{"currentFilter": {"groupSelect":"all","hostSelect":"all","prioritySelect":"all","priorityOf":"none","priorityTo":"none","periodSelect":"all","periodDateStart":"none","periodDateEnd":"none","messageFilter":"none"},"firstseq":null,"lastseq":null}
, что я делаю неправильно, что я получить пустую строку
разницы между браузером Firefox и хромом
class ResultController extends Controller
{
public function loadLogs ()
{
$this->prepareRequest();
}
public function prepareRequest ()
{
print_r($this->request->data);
var_dump($this->request->data);
}
в хроме я получаю массив и светлячок я получаю просто пустым
клиентского код
load : function () {
var deferred = $.Deferred();
var currentFilter = FilterModel.getCurrentFilter();
var data = {
'currentFilter' : currentFilter,
'firstseq' : LogsController.firstseq,
'lastseq' : LogsController.lastseq
};
var url = 'php/main.php?controller=Result&action=loadLogs';
server.post(url, data).done(function (data) {
LogsController.firstseq = data.firstelem;
LogsController.lastseq = data.lastelem;
LogsView.appendLogs(data.resultdata);
view.setPriorityColor();
deferred.resolve();
}).fail(function (textStatus) {
view.popupError(textStatus.responseText);
});
return deferred.promise();
},
Почему вы не используете '$ _POST' вместо' file_get_contents ("PHP: // ввод") '? – RichardBernards
И что вы получаете, когда выполняете 'echo print_r ($ _ POST, true);'? – RichardBernards
@RichardBernards Потому что, когда вы отправляете что-то вроде JSON, '$ _POST' не будет заполняться. –