【问题标题】:POST http://localhost:3001/[object%20Promise] 404 (Not Found) React AxiosPOST http://localhost:3001/[object%20Promise] 404 (Not Found) React Axios
【发布时间】:2021-12-12 18:52:44
【问题描述】:

这是我向服务器发送数据的代码,但我总是收到此错误。

let data = {
        "email": "test@gmail.com",
        "language": "en",
        "country": "en",
        "istestentry": false
    };

    let jsonData = JSON.stringify(data);
    let encodedData = encodeURIComponent(jsonData);
    let url = "https://example.org/b/receiver/external";
    let fetchUrl = url + "?datajsonstr=" + encodedData + "&_=" + (new Date()).valueOf();
    let datafetch = fetch(fetchUrl);

    const [fetchedData, setFetchedData] = useState('');

    async function fetchData(){
        const  {data} = await axios.post(
            datafetch
        )
        setFetchedData(data)
    }

    useEffect(() => {
        fetchData()
    }, [])

    const handleSubmit = (event) => {
        event.preventDefault();
        fetchData()
};

我不知道如何解决这个问题。

【问题讨论】:

  • 你必须提出 axios.get 请求

标签: javascript reactjs axios


【解决方案1】:

我是这样解决的。 如果不想用axios,也可以这样解决。

const [dataDone, setDataDone] = useState(false);

useEffect(() => {
    let data = {
        "email": "test@gmail.at",
        "language": "de",
        "country": "de",
        "istestentry": false
    };

    let jsonData = JSON.stringify(data);
    let encodedData = encodeURIComponent(jsonData);
    let url = "https://org.com;
    let fetchUrl = url + "?datajsonstr=" + encodedData + "&_=" + (new 
    Date()).valueOf();
    let datafetch = fetch(fetchUrl);

    datafetch.then(data => {
        setDataDone(true)
    })
}, [])

【讨论】:

    【解决方案2】:

    您正在尝试发送承诺而不是字符串化数据。 let datafetch = fetch(fetchUrl); 给你一个承诺。通过参数发送数据也是通过get 请求完成的。所以我假设您可能需要发出get 请求:

    let fetchUrl = url + "?datajsonstr=" + encodedData + "&_=" + (new Date()).valueOf();
    
    const [fetchedData, setFetchedData] = useState('');
    
    async function fetchData(){
        const  {data} = await axios.get(fetchUrl)
        setFetchedData(data)
    }
    

    (附注getpost取决于您的api如何处理请求。您可以选择正确的)

    【讨论】:

    • 我觉得答案也对,但是我已经没有用过Axios了。 @ABDULLOKH MUKHAMMADJONOV
    猜你喜欢
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 2017-01-12
    • 1970-01-01
    • 2023-02-24
    相关资源
    最近更新 更多