ฉันพบ สิ่งนี้ ซึ่งช่วยฉันได้แล้ว แต่หลังจากเพิ่มส่วนหัวเช่นนี้ใน proxy.js ของฉัน:
const proxy = require('http-proxy-middleware');
module.exports = function(app) {
app.use(function(req, res, next) {
//adding headers to allow CORS
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
app.use(proxy('/api', { target: 'http://localhost:8080' }));
}
ที่ fetch() ฉันได้เพิ่มส่วนหัวเพื่อให้แน่ใจว่าใช้งานได้:
fetch('http://localhost:8080/api',{
headers:{
'Access-Control-Allow-Origin':'*'
},
})
.then(res => res.json())
.then((data) => {
this.setState({ contacts: data })
})
.catch(console.log)
}
ฉันยังคงได้รับข้อผิดพลาด: TypeError: "NetworkError เมื่อพยายามดึงทรัพยากร"
this.setState({ contacts: data })
ควรจัดเก็บวัตถุ JSON ที่ถูกส่งโดยโปรแกรม Backend Java ของฉัน วัตถุ JSON อยู่ที่ localhost:8080/api และเป็นเพียงสตริง
ส่วนหน้า React ของฉันทำงานบน localhost:3000
ส่วนหัวการตอบกลับจะมีลักษณะเช่นนี้
ฉันต้องใช้ส่วนหัวนี้ที่ไหนเพื่อไม่ให้ได้รับข้อผิดพลาด CORS โดยเฉพาะอย่างยิ่งฉันต้องการทำงานโดยไม่มีไลบรารี npm "cors" หรือส่วนเสริมของเบราว์เซอร์ ฉันควรแทนที่ '*' ด้วย localhost:8080 ถ้าฉันจำไม่ผิดใช่ไหม เป้าหมายสุดท้ายของฉันคือการใส่สตริงเหล่านี้ใน PrimeReact Component (A Table) แบบไดนามิก
แก้ไข: ข้อความแสดงข้อผิดพลาดแบบเต็มที่ร้องขอโดย sideshowbarker:
คำเตือน:
คำขอข้ามต้นทางถูกบล็อก: กฎแหล่งที่มาเดียวกันห้ามไม่ให้อ่านทรัพยากรภายนอกที่ http://localhost:8080/api. (เหตุผล: ช่องสัญญาณ preflight CORS ไม่สำเร็จ)
คำเตือน:
คำขอข้ามต้นทางถูกบล็อก: กฎแหล่งที่มาเดียวกันห้ามไม่ให้อ่านทรัพยากรภายนอกที่ http://localhost:8080/api. (เหตุผล: ช่องสัญญาณ preflight CORS ล้มเหลว)
ข้อผิดพลาด:
TypeError: "NetworkError เมื่อพยายามดึงทรัพยากร
//เป็นภาษาเยอรมัน เลยอัพโหลดภาพหน้าจอไม่ได้ แปลแล้วลืมบอกไปว่าใส่ @CrossOrigin ใน Restcontroller ด้วย