2015-03-21 5 views
0

Я отлаживал это часами. Пытался установить заголовок и т. Д., Но не повезло!

Мой контроллер

$http({ 
    url: 'http://myphp.php/api.php', 
    method: "POST", 
    data: {'wtf':'test'} 
}) 
.then(function(response) { 
     console.log(response); 
    }, 
    function(response) { // optional 
     // failed 
    } 
); 

и мой PHP

<?php 
echo "test"; 
echo $_POST["wtf"]; 
?> 

В моей вкладке сети это, как это выглядит

enter image description here

Не уверен, что это не тот человек, на самом деле исчерпан , Я застрял часами! Почему мой $ _POST ['wtf] не ответил?

ответ

0

$ http сериализует данные в JSON в теле запроса, но PHP $ _POST ищет ключевые/значения, проанализированные из опубликованных данных формы. Это два разных механизма для публикации данных, поэтому вам нужно выбрать один и использовать этот механизм с обеих сторон.

У вас есть два варианта решения этого:

  1. В вашем PHP кода, синтаксический анализ тела запроса в качестве данных JSON, а затем использовать этот объект для извлечения данных. См. this Вопрос StackOverflow для получения дополнительной информации.

  2. Измените свой запрос $ http, чтобы отправить данные в виде данных формы. См. this Вопрос StackOverflow для получения дополнительной информации.

0

$ http.post (по умолчанию) не отправляет данные в виде пар ключ/значение. Он отправляет его в качестве почтового запроса.

Таким образом, в вашем PHP скрипт вы должны потреблять это следующим образом:

$input = file_get_contents('php://input'); 

А потом разобрать его так:

$data = json_decode($input, true); 
Смежные вопросы