Ниже приведен код отправки формы 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);
}
}
Теперь я получаюОшибка сети! Попробуйте снова!!!«Я должен получать»успех».
Изменить: я упустил момент, что это входной поток
Попробуйте это вместо этого:
$ 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;
Прочитайте больше: Вот
Я получил это с помощью
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;
Не знаю, является ли это лучшим ответом, но я пойду с ним сейчас, было бы хорошо, если бы кто-то мог исправить это, если есть лучшее решение.