簡體   English   中英

POST http://localhost:3001/[object%20Promise] 404 (Not Found) React Axios

[英]POST http://localhost:3001/[object%20Promise] 404 (Not Found) React Axios

這是我將數據發送到服務器的代碼,但我總是收到此錯誤。

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()
};

我不知道如何解決這個問題。

您正在嘗試發送承諾而不是字符串化數據。 let datafetch = fetch(fetchUrl); 給你一個承諾。 通過 params 發送數據也是通過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)
}

(PS getpost取決於你的 api 如何處理請求。你可以選擇正確的一個)

我是這樣解決的。 如果你不想使用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)
    })
}, [])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM