ฉันพยายามส่งข้อความไปยัง slack api โดยใช้ React และ axios และเนื่องจากเหตุผลที่ไม่ทราบสาเหตุบางประการ ฉันจึงได้รับข้อผิดพลาดนโยบาย CORS
export const sendMessage = data => dispatch => {
console.log(data);
const message = {
channel: data.currentChannelId,
text: data.text
};
const token =
"MY_TOKEN";
const config = {
"Content-Type": "application/json",
"Authorization": `Bearer ${token}`
};
axios
.post("https://slack.com/api/chat.postMessage", JSON.stringify(message), config)
.then(res => {
console.log(res);
dispatch({
type: actionTypes.SEND_MESSAGE,
payload: data
});
})
.catch(err =>
dispatch({
type: actionTypes.SEND_MESSAGE,
payload: {}
})
);
};
ฉันได้ตรวจสอบคำถามมากมายที่ถูกถามที่นี่ และยังติดต่อฝ่ายสนับสนุนของ slack และได้รับข้อความต่อไปนี้:
เราได้เห็นนักพัฒนาซอฟต์แวร์ได้รับผลลัพธ์ที่ดีขึ้นโดยทำให้แน่ใจว่าพวกเขาไม่ได้ส่งส่วนหัวใดๆ ไปพร้อมกับคำขอของพวกเขา สิ่งนี้อาจทำให้เกิดข้อผิดพลาดก่อนการบินในส่วนของเรา
คุณลองดูว่ามันช่วยได้ไหม?
แน่นอนว่าการไม่ส่งส่วนหัวใดๆ นั้นเป็นไปไม่ได้ เนื่องจากเรากำลังส่งการอนุญาตในส่วนหัวของเราด้วย
ฉันพยายามลบเพียง "Content-Type": "application/json"
และเกิดข้อผิดพลาดเดิมอีกครั้ง ฉันยังลองเปลี่ยนเป็น "Content-Type": "application/x-www-form-urlencoded"
ไม่มีการเปลี่ยนแปลงเกิดขึ้นทั้งสองกรณี ฉันได้รับข้อผิดพลาดนี้:
เข้าถึง XMLHttpRequest ได้ที่ 'https://slack.com/api/chat.postMessage' จาก origin 'http://localhost:3000' ถูกบล็อกโดยนโยบาย CORS: ไม่อนุญาตให้ใช้ประเภทเนื้อหาฟิลด์ส่วนหัวคำขอ โดย Access-Control-Allow-Headers ในการตอบกลับล่วงหน้า
แม้ว่าจะมีคำถามอื่นอีกมากมายและนี่อาจจะซ้ำกัน แต่ไม่มีคำตอบใดที่เหมาะกับปัญหาของฉัน
Access-Control-Allow-Origin: *
สิ่งนี้ลงในส่วนหัวที่ส่งโดย axios คุณหมายถึงสิ่งนี้เหรอ? - person Afshin   schedule 14.06.2019