【发布时间】:2019-11-25 13:03:07
【问题描述】:
当我通过网络浏览器调用我的 API 时,我得到以下结果:
{"statusCode": 200, "body": "\"Cheers from AWS Lambda!\""}
但是,我现在正在努力通过 axios 显示身体。你知道我做错了吗?
import axios from "axios";
import React, { Component } from "react";
class App extends Component {
state = {
messages: []
};
componentDidMount() {
axios
.get(
"https://12345.execute-api.eu-central-1.amazonaws.com/prod/get-data"
)
.then(response => {
const messages = response.data;
this.setState({ messages });
});
}
render() {
return (
<ul>
{this.messages}
Test
{this.state.messages.map(message => (
<li>{message}</li>
))}
</ul>
);
}
}
export default App;
【问题讨论】:
-
this.messages是什么?messages函数在哪里 .. 是{JSON.stringify(this.state.messages)}吗? -
这只是告诉我
[]。消息似乎没有收到它应该收到的数据? -
你能 console.log(response.data) 吗?那里有什么?
-
现在我在控制台中查看它实际上显示
Access to XMLHttpRequest at 'https://12345.execute-api.eu-central-1.amazonaws.com/prod/get-data' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.我想这不是反应问题,而是权限问题?让我困惑的是,我可以通过我的网络浏览器毫无问题地调用它。