【发布时间】:2017-01-02 08:58:07
【问题描述】:
我使用 reactjs 创建了一个登录页面,当我通过 post 方法 rest api 调用发送我的用户输入/密码以进行身份验证时,我收到一个错误。有人可以帮我解决这里出了什么问题!!
我猜这是因为我无法以 json 格式发送用户名和密码字符串。
这是错误,
<br />
<b>Notice</b>: Undefined variable: error in <b>/var/www/html/app/Controllers/Hafka/HAFKAController.php</b> on line <b>27</b><br />
<br />
<b>Notice</b>: Undefined variable: id in <b>/var/www/html/app/Controllers/Hafka/HAFKAController.php</b> on line <b>29</b><br />
<br />
<b>Notice</b>: Undefined variable: error in <b>/var/www/html/app/Controllers/Hafka/HAFKAController.php</b> on line <b>29</b><br />
{"code":"INVALID_JSON_INPUT","message":"Error decoding JSON input"}
这是我的 app.js 文件,
import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';
export default class App extends Component {
render() {
return (
<div className="App">
<div className="App-header"></div>
<form
id="main-login"
action="http://don.healthedata.com/admin/login"
method="post">
<h2>
Admin UI Login
</h2>
<label>
<span class="text">user:</span>
<input type="email" name="email"/><br/>
</label>
<br/>
<label>
<span class="text">password:</span>
<input type="password" name="password"/><br/>
</label><br/>
<div class="align-right">
<button type="submit">Submit</button>
</div>
</form>
</div>
);
}
}
解决方案:
修改和工作的 App.js 文件:
import React, {Component} from 'react';
import logo from './logo.svg';
import './App.css';
export default class App extends Component {
constructor(props, context) {
super(props, context);
this.state = { description: '' };
}
onChange(e) {
this.setState({
[e.target.name]: e.target.value
});
}
onSubmit(e) {
e.preventDefault();
fetch(this.props.formAction, {
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({description: this.state.description})
});
this.setState({description: ''});
}
render() {
return (
<div className="App">
<form
id="main-login"
action={this.props.action}
method={this.props.method}
onSubmit={this.onSubmit}>
<h2>Admin UI Login</h2>
<label>
<span class="text">user:</span>
<input type="email" name="email"/><br/>
</label>
<br/>
<label>
<span class="text">password:</span>
<input type="password" name="password"/><br/>
</label>
<br/>
<div class="align-right">
<button>Submit</button>
</div>
</form>
</div>
);
}
}
// App.propTypes = { action: React.PropTypes.string.isRequired, method: React.PropTypes.string}
App.defaultProps = {
action: 'http://don.healthedata.com/admin/login',
method: 'post'
};
module.exports = App;
当我提供用户输入/密码并点击提交时,什么都没有发生。
【问题讨论】:
-
我建议先阅读 react 教程。 facebook.github.io/react/docs/tutorial.html
-
请尝试缩进您的代码以使其更具可读性
-
@LuisPinto 我已经缩进了我的代码,请告诉我你指的是什么!!
标签: javascript reactjs react-router reactjs-flux