Reactjs 从curl获取数据,但与axios提供空对象相同

Reactjs 从curl获取数据,但与axios提供空对象相同,reactjs,curl,axios,Reactjs,Curl,Axios,我使用react axios从后端flask api服务器获取数据。当我做卷曲时,我得到了完美的数据作为响应,但当我尝试使用axios时,我得到了一个200的空对象 我已经尝试了很多可能的方法,但axios可能没有找到正确的方法 curl-X-GEThttp://10.214.79.37:5050/v1/vision/api/assets/search -H accept:application/json-H内容类型:application/json-d{\barraOnly\:true、\l

我使用react axios从后端flask api服务器获取数据。当我做卷曲时,我得到了完美的数据作为响应,但当我尝试使用axios时,我得到了一个200的空对象

我已经尝试了很多可能的方法,但axios可能没有找到正确的方法

curl-X-GEThttp://10.214.79.37:5050/v1/vision/api/assets/search -H accept:application/json-H内容类型:application/json-d{\barraOnly\:true、\label\:\AAPL\,\missingId\:false、\searchFilter\:[],\source\:null}

下面是axios代码

const apiUrl = 'http://10.214.79.37:5050/v1/vision/api/assets/search';


const SearchTicker = () => {
    const [state, setState] = useState('');
    const handleInputChange = async (event) => {
        event.preventDefault();
        setState(event.target.value)
        axios.get(
            apiUrl, { data: "{ \"barraOnly\": true, \"label\": \"AAPL\", \"missingId\": false, \"searchFilter\": [], \"source\": null}"},           
            {headers: { "Content-Type": "application/json"}},
            ).then(function (response) {console.log(response)});
        // console.log(resp.data);
    }
编辑:在接受您的输入后,我已经更新了下面的代码,但仍然没有获得数据。特定于浏览器调用的API本身是否存在问题

const apiUrl = 'http://10.214.79.37:5050/v1/vision/api/assets/search';

    const SearchTicker = () => {
        const [state, setState] = useState('');
        const handleInputChange = event => {
            event.preventDefault();
            setState(event.target.value)

            const header = { 
              "Content-Type": "application/json",
            };

            const param = { 
              barraOnly: true, 
              label: "AAPL",
              missingId: false, 
              searchFilter: [], 
              source: null,
            };

            axios
              .get(apiUrl, { params:param , headers: header},)
              .then(response => console.log(response))
          };
edit2:通过调试后端,我意识到参数没有进入api。不确定为什么

因为您已经在使用异步但没有等待,请尝试添加等待,它会暂停执行,直到您从请求中获取数据

const apiUrl = 'http://10.214.79.37:5050/v1/vision/api/assets/search';


const SearchTicker = () => {
    const [state, setState] = useState('');
    const handleInputChange = async (event) => {
        event.preventDefault();
        setState(event.target.value)
        let response = await axios.get(apiUrl, { data: "{ \"barraOnly\": true, \"label\": \"AAPL\", \"missingId\": false, \"searchFilter\": [], \"source\": null}"},           
            {headers: { "Content-Type": "application/json"}});
        console.log(response);
    }
由于您已经在使用async而不是await,请尝试添加await,它会暂停执行,直到您从请求中获取数据为止

const apiUrl = 'http://10.214.79.37:5050/v1/vision/api/assets/search';


const SearchTicker = () => {
    const [state, setState] = useState('');
    const handleInputChange = async (event) => {
        event.preventDefault();
        setState(event.target.value)
        let response = await axios.get(apiUrl, { data: "{ \"barraOnly\": true, \"label\": \"AAPL\", \"missingId\": false, \"searchFilter\": [], \"source\": null}"},           
            {headers: { "Content-Type": "application/json"}});
        console.log(response);
    }

我想在这里补充两件事: 1.因为您没有等待任何东西,所以不需要将函数标记为异步。 2.axios的GET方法不支持数据,也不打算随请求一起发送正文。最好的做法是更新api句柄以接受POST。无论如何,如果不可能更改api,您可以按照axios本身的建议,将数据包装到params对象中来发送数据

axios.get(url,{params: {your data}, {header:{}});
试试这样的。
希望能有帮助

这里我想补充两件事: 1.因为您没有等待任何东西,所以不需要将函数标记为异步。 2.axios的GET方法不支持数据,也不打算随请求一起发送正文。最好的做法是更新api句柄以接受POST。无论如何,如果不可能更改api,您可以按照axios本身的建议,将数据包装到params对象中来发送数据

axios.get(url,{params: {your data}, {header:{}});
试试这样的。
希望能有帮助

我使用POST解决了这个问题,因为我意识到即使在使用了params之后,FlaskAPI服务器也没有获取数据参数。我更新了API以接收帖子,它就像一个魔咒。
感谢您的帮助。

我使用POST解决了这个问题,因为我意识到即使在使用了params之后,Flask API服务器也没有使用数据参数。我更新了API以接收帖子,它就像一个魔咒。
谢谢你的帮助。

你有什么错误吗?检查你的控制台。没有任何错误。你有任何错误吗?检查您的控制台。完全没有错误