Передача данных из Angularjs в PHP - PullRequest
0 голосов
/ 18 мая 2019

Я действительно новичок в Angular. Я пытаюсь передать переменную в php, но ответ «Примечание: пытаюсь получить свойство не-объекта» и null для массива.

js файл:

var myData = {
            fruit1: 'apple',
            fruit2: 'banana'
        };


$http({
    url: "test.php",
        method: "POST",
        headers : { 'Content-Type': 'application/json' },
        data: myData
    }).success(function(data, status, headers, config) {
        $scope.data = data;
    }).error(function(data, status, headers, config) {
        $scope.status = status;
});

php файл:

$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$data = $request->myData;

var_dump($data);

1 Ответ

0 голосов
/ 18 мая 2019

Методы .success и .error были удалены из среды AngularJS.Вместо этого используйте методы .then и .catch:

var myData = {
    fruit1: 'apple',
    fruit2: 'banana'
};

$http({
    url: "test.php",
    method: "POST",
    ̶h̶e̶a̶d̶e̶r̶s̶ ̶:̶ ̶{̶ ̶'̶C̶o̶n̶t̶e̶n̶t̶-̶T̶y̶p̶e̶'̶:̶ ̶'̶a̶p̶p̶l̶i̶c̶a̶t̶i̶o̶n̶/̶j̶s̶o̶n̶'̶ ̶}̶,̶
    data: myData
}).then(function(response) {
    $scope.data = response.data;
    return response.data;
}).catch(function(err) {
    $scope.status = err.status;
    throw err;
});

Служба $ http автоматически JSON кодирует данные и автоматически устанавливает тип содержимого application/json.

В этом случаекод не использует обещание, возвращаемое методами .then и .catch.Если используется обещание, важно иметь в обработчиках успеха и отклонения операторы return и throw.

php файл:

$postJSON = file_get_contents("php://input");
$dataArr = json_decode($postJSON, TRUE);

var_dump($dataArr);

Найдены данные в кодировке JSONв теле запроса POST.Имя переменной не отправляется, только содержимое.

Второй аргумент функции json_decode указывает, что объекты должны быть преобразованы в ассоциативные массивы.

Имейте в виду, что эти POSTзапросы подлежат политика того же происхождения .Запрос XHR должен быть сделан со страницы веб-сайта, которая имеет то же происхождение, что и страница, получающая запрос POST.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...