在Postman中,它可以工作:
1) url: https://app/login
2) method: POST
3) body
4) x-www-form-urlencoded
5)username: ****,
password: ****,
grant_type: 'password',
client_secret: '****',
client_id: '****'
字符串
在函数submit
方法POST中,当表单提交时,它不工作。我有错误:
xhr.js?b50d POST https://app/login 400(Bad Request)
错误:请求失败,在createError(createError.js?2d 83)在settle(settle.js?467f)在XMLHttpRequest.handleLoad(xhr.js?b50d)
在response
中的选项卡Network
中,我有:
{“error”:“invalid_client”,“error_description”:“在标头或正文中未找到客户端凭据”}
登录
class Login extends Component {
constructor (props) {
super(props);
this.state = {
email: '',
password: ''
}
}
handle = (e) => {
const name = e.target.name;
const value = e.target.value;
this.setState({
[name]: value
});
}
submit = (event) => {
event.preventDefault();
const body1 = {
username: this.state.email,
password: this.state.password,
grant_type: 'password',
client_secret: '****',
client_id: '****'
}
axios({
method: 'post',
url: 'https://app/login',
body: body1,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
})
.then(res => {
if (res.status === 200) {
console.log(res)
}
}).catch(err => {
console.error(err);
});
}
render () {
return (
<form action="" method="post" onSubmit={this.submit}>
<div>
<label htmlFor="email">Email</label>
<input type="email" required name="email"
value={this.state.email}
onChange={this.handle} />
</div>
<div>
<label htmlFor="password">Password</label>
<input type="password"name="password"
value={this.state.password}
onChange={this.handle} />
</div>
<button type="submit" value="Submit">Log</button>
</form>
)
}
}
型
在POSTMAN中发送和在应用程序中发送有什么区别?正文的内容转换为字符串?
4条答案
按热度按时间gzjq41n41#
Axios处理错误的方式不同。
找出真正的问题所在。
你应该使用
error.request
来检查你的请求是否有错误并使用
error.response
从服务器获取错误反馈字符串
dxxyhpgq2#
代码在Content-Type中声明主体将被URL字符串编码,但在主体中它被赋予了一个JavaScript对象。看起来Axios客户端并没有将body对象转换为URL编码的值(即从
{a: 5, b: 2}
到"a=5&b=2"
)。该代码需要一个函数转换.最常见的是qs。否则你的数据可能会被转换成一个字符串与
.toString()
方法,这将给予你"[object Object]"
,你应该能够看到这在网络标签的开发工具。exdqitrt3#
Localhost:3000/API/products 404错误您没有在server.js上创建res.get(“/api/products”)或者没有设置代理。检查下面的代理设置。
代理错误:could not proxy request /API/products检查此:
{“name”:“frontend”,“proxy”:“http://127.0.0.1:5000“,…}
1.停止运行前端和后端
1.先运行后端
npm启动
1.然后前端
cd frontend npm start
whlutmcx4#
代码在Content-Type中声明主体将被URL字符串编码,但在主体中它被赋予了一个JavaScript对象。看起来Axios客户端并没有将body对象转换为url编码的值(即from {a:5,B:2}到“a=5&b=2”)。该代码需要一个函数转换.一个流行的是qs。
字符串