ฉันเพิ่งอัปโหลดโปรเจ็กต์ ASp.NET CORE React พร้อม Redux (และ KendoUI React) ไปยังแพลตฟอร์มโฮสติ้ง Azure ของฉัน และตอนนี้ ฉันไม่สามารถเข้าถึงข้อมูลใดๆ ที่ดึงมาจาก API ได้ ฉันดูที่คอนโซลและเห็นข้อความแสดงข้อผิดพลาด:
เข้าถึงเพื่อดึงข้อมูลได้ที่ 'https://login.microsoftonline.com/xxx-xxx-xxx-xxx-xxx/oauth2/authorize?client_id=xxx-xxx-xxx-xxx-xxx&redirect_uri=https%3A%2F%2Fmywebsite.azurewebsites.net%2Fsignin-oidc&response_type=id_token&scope=openid%20profile&response_mode=form_post&nonce=xxx.xxxstate=xxx-xxx-xxx-xxx-xxxxxx&x-client-SKU=ID_NET&x-client-ver=2.1.4.0' (เปลี่ยนเส้นทางจาก 'https://mywebsite.azurewebsites.net/api/MyData/GetMyData?page=1&pageSize=20') จากต้นทาง 'https://mywebsite.azurewebsites.net ' ถูกบล็อกโดยนโยบาย CORS: ไม่มีส่วนหัว 'Access-Control-Allow-Origin' บนทรัพยากรที่ร้องขอ หากการตอบสนองแบบทึบตอบสนองความต้องการของคุณ ให้ตั้งค่าโหมดคำขอเป็น 'no-cors' เพื่อดึงทรัพยากรโดยปิดใช้งาน CORS
ฉันตรวจสอบปัญหาโดยการค้นหาข้อความแสดงข้อผิดพลาด ฉันพบโพสต์บางส่วนแต่ไม่มีอะไรชัดเจนเกี่ยวกับสิ่งที่ต้องทำในแอปพลิเคชันโต้ตอบที่เป็นแนวทางปฏิบัติที่ดีที่สุดและปลอดภัย
ฉันเพิ่มส่วนหัวของ Access-Control-Allow-Origin: *
ในการดึงข้อมูลของฉัน แต่มันไม่ทำงาน อีกวิธีหนึ่งที่ฉันพบคือการใช้พรอกซี แต่ตัวอย่างนี้รองรับเฉพาะสภาพแวดล้อมการพัฒนาในเครื่องเท่านั้น
นี่คือการดึงข้อมูลของฉันซึ่งคุณจะเห็นว่าฉันเพิ่ม Access-Control-Allow-Origin
ในส่วนหัว:
fetchData(dataState) {
const queryStr = `${toDataSourceRequestString(dataState)}`;
const hasGroups = dataState.group && dataState.group.length;
const base_url = 'api/MyData/GetMyData';
const init = { method: 'GET', accept: 'application/json', headers: "Access-Control-Allow-Origin: *" };
fetch(`${base_url}?${queryStr}`, init)
.then(response => response.json())
.then(({ Data, total }) => {
this.setState({
result: hasGroups ? translateDataSourceResultGroups(Data) : Data,
total,
dataState
});
}).catch(function (error) {
console.log('Error: \n', error);
});
};
การเพิ่มส่วนหัวไม่ได้เปลี่ยนแปลงอะไรและข้อผิดพลาดยังคงมีอยู่ ฉันต้องการแน่ใจว่าฉันทำสิ่งนี้อย่างถูกต้อง ใครสามารถช่วยฉันแก้ไขข้อผิดพลาดนี้ได้บ้าง