當我運行我的反應代碼時,我得到一個語法錯誤
App.jsx:8 Uncaught (in promise) SyntaxError: Unexpected end of input (at App.jsx:8:1)
at App.jsx:8:1
如果您查看 App.jsx,我不明白為什么這是錯誤的:
import React, {useState, useEffect} from "react";
function App() {
const [backendData, setBackendData] = useState([{}])
useEffect( () => {
fetch("http://localhost:8000/api", {mode: 'no-cors'})
.then(
res => res.json()
)
.then(
data => {
setBackendData(data)
}
)
}, [])
return (
<div className="App">
</div>
);
}
export default App;
沒有任何錯誤?
uj5u.com熱心網友回復:
設定{mode: 'no-cors'}不會像您預期的那樣禁用 CORS 錯誤。它告訴瀏覽器類似這樣的資訊:阻止我的前端 JavaScript 代碼在所有情況下查看回應正文和標頭的內容。
你可能不想要那樣。如果你有 CORS 的問題,它不能在前端修復,這是一個后端問題,所以后端應該回傳更多指定的標頭(Access-Control-Allow-Origin準確地說)
uj5u.com熱心網友回復:
您的錯誤是由于目標服務器存在 CORS 問題。
要解決這個問題,您必須在服務器代碼或配置中包含Access-Control-Allow-Origin: *或Access-Control-Allow-Origin: domain.com
uj5u.com熱心網友回復:
也許你的 API 不回傳 json,試試這個
useEffect( () => {
fetch("http://localhost:8000/api", {mode: 'no-cors'})
.then(result => result.text())
.then(
data => {
setBackendData(data)
}
)
}, [])
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/536974.html
