реагировать — невозможно получить значения POST в php при отправке формы реагирования / редукции

Я создаю приложение React + Redux, используя PHP в качестве бэкэнда. У меня есть простая форма входа в систему, например, так:

import React, {Component} from 'react';
import {reduxForm} from 'redux-form';
import {loginUser} from '../actions/index';

class LoginForm extends Component {

render() {
const {fields: {username, password}, handleSubmit} = this.props;
return (
<form onSubmit={handleSubmit(this.props.loginUser)}>
<input
type="string"placeholder="username"{...username}
/>
<input
type="password"placeholder="password"{...password}
/>
<input
type="submit"/>
</form>
);
}
}

export default reduxForm({
form: 'Login',
fields:['username', 'password']
}, null, {loginUser})(LoginForm);

я использую redux-form управлять обработкой данных формы. я использую loginForm (создатель действий) для отправки данных в бэкэнд php следующим образом:

export function loginUser(props) {
console.log('props', props);
const request = axios.post(LOGIN_PAGE, props);
return {
type: LOGIN_USER,
payload: request
}
}

console.log правильно отображает все данные из формы входа.

Вот мой бэкэнд PHP:

if (!is_user_logged_in()) {
$username = $_POST['username'];
$username = $username . 'test';
$password = $_GET['password'];
$response = array(
'username' => $username
);
wp_send_json($response);
}

Вот соответствующий редуктор:

export default function(state = INITIAL_STATE, action) {
switch(action.type) {
case LOGIN_USER:
console.log('reducer', action.payload.data);
return {
...state,
statusCode:action.payload.data,
user:action.payload.data
}
}
return state;
}

Когда я вхожу action.payload.dataЯ получаю {username: ‘test’}, что указывает на то, что мой бэкэнд не получает данные из моей формы. То есть Если я наберу username как abc, я должен вернуться abctest, а не test.

Куда я иду не так?

1

Решение

Похоже этот метод GET используется для отправки формы. Вот почему $_POST['username'] приводит к нулю. Поэтому вы должны использовать метод POST и получить пароль от $_POST['password'] вместо $_GET['password'] также.

1

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

Я полностью забыл об этом вопросе!

Форма отправляет JSON на сервер, вот как это получить:

$inputJSON = file_get_contents('php://input');
$input = json_decode( $inputJSON, TRUE ); //convert JSON into array
$username = $input['username'];
1

может быть Как получить запрос полезной нагрузки поможет вам получить значения, представленные по реакции в PHP.

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