угловой $ http.post () и php?

0

Я знаю, что есть несколько сообщений на SO и во многих блогах, объясняющих, как получить данные JSON, которые были отправлены для чтения php. Некоторые используют url-encoding, другие file_get_contents.

Во всяком случае, это не работает для меня. Я уверен, что это смехотворно простое объяснение, но мой код просто не работает (запрос отправляется, бэкенд отвечает, но это сообщение более или менее всегда одно и то же: ничего не приходит туда!

Поэтому в моем контроллере у меня есть:

var request_data = {
    firstname: 'Quentin',
    lastname: 'Hapsburg'
  };

$http.post("lib/api/public/blog/post", JSON.stringify(request_data))
    .success(function(data) {
        console.log(data);
    })

И в php файле:

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

var_dump($data);

Результат NULL ! Любые предложения о том, где моя ошибка?

EDIT: Это может иметь какое-то отношение к правилам перезаписи, но не является дубликатом, поскольку тот же ответ не решает этот вопрос!

  • 0
    Начните с просмотра сетевого инспектора инструментов отладчика вашего браузера и выяснения точных данных, отправляемых в PHP, и каков ответ. Возможно, ваш сервер отвечает перенаправлением 302, которое отбрасывает данные POST ...
  • 0
    Я проверил это и, к сожалению, у меня нет конкретных ошибок.
Показать ещё 5 комментариев
Теги:
post
http

2 ответа

0

попробуйте использовать application/x-www-form-urlencoded

$http.post(urlBase, $httpParamSerializer(object), {
    headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},
}).then(function(r) {
    callback(r);
});

и тогда php сможет получить доступ к вашему размещенному объекту, используя $ _POST

  • 0
    Тоже не работает. В этом случае я получаю неопределенную ошибку индекса!
  • 0
    что возвращает var_dump ($ _ POST)?
-2

Используйте этот файл js. Это будет работать

Index.html:

<html>
<head>
   <script src="js/angular.min.js"></script>
</head>

<body ng-app="myApp">
<div ng-controller="mainCtrl">
    sdadasdasd
</div>
<script src="app.js"></script>
</body>
</html>

app.js:

var app = angular.module("myApp", []);
app.controller("mainCtrl", function($scope,$http){
    var request_data = {
        firstname: 'Quentin',
        lastname: 'Hapsburg'
    };

    $http.post("test.php", JSON.stringify(request_data)).success(function(data) {
        console.log(data);
    });
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню