Остальное — я не могу получить значение, которое я отправляю с помощью http-поста в Angular2 на мой PHP-сервер.

Ниже приведен код отправки формы angular2, я отправляю тестовое имя пользователя и пароль

logForm(formData){
console.log('Form data is ', formData.title);
var link = 'http://test/index.php/api/userAuth';
var headers = new Headers();
headers.append("Content Type","application/json");

var data = JSON.stringify({
username:'user',
password:'user123'
});

this.http.post(link,data,headers)
.subscribe(data => {
console.log(data.json());
});
}

Сторона PHP находится в codeigniter с использованием архитектуры REST, код php приведен ниже

function userAuth_post() {

if (($this->post('username') == '') || ($this->post('password') == '')) {
$this->response(array('message' => 'Network Error! Try Again!!!'), 200);
}else{
$this->response(array('message' => 'Success'), 200);
}
}

Теперь я получаюОшибка сети! Попробуйте снова!!!«Я должен получать»успех».

0

Решение

Изменить: я упустил момент, что это входной поток

Попробуйте это вместо этого:

$ This-> вход-> input_stream ( ‘поле’);

if ( ! $this->input->input_stream('username') || ! $this->input->input_stream('password')) {
$this->response(array('message' => 'Network Error! Try Again!!!'), 200);
}else{
$this->response(array('message' => 'Success'), 200);
}

вот как ты можешь получить php://input в CodeIgniter:

$ This-> вход-> raw_input_stream;

Прочитайте больше: Вот

0

Другие решения

Я получил это с помощью

function userAuth_post() {

$postdata = file_get_contents("php://input");
if (isset($postdata)) {
$request = json_decode($postdata);
$userName = $request->username;
$userPass = $request->password;
}
if (($userName == '') || ($userPass == '')) {
$this->response(array('message' => 'Network Error! Try Again!!!'), 200);
}else{
$this->response(array('message' => 'Success'), 200);
}
}

В Codeigniter мы можем использовать

$postdata = $this->input->raw_input_stream;

Не знаю, является ли это лучшим ответом, но я пойду с ним сейчас, было бы хорошо, если бы кто-то мог исправить это, если есть лучшее решение.

0

По вопросам рекламы [email protected]