1
我正確地在我的api的響應頭中做了cors配置。aws cognito && apiGateway返回狀態401
當我通過郵遞員測試了我的API與附着在報頭(「授權」)的經驗證令牌 ,它返回200
我檢查我的前端取代碼以請求API,似乎沒有錯誤或故障。
它怎麼會發生?沒有任何人與我現在正在掙扎的人相同。
加:
我的前端抓取代碼看起來像這樣。
export const getDoc = async (docId, token) => {
const path = `${apiGateway.URL}`;
const body = {
docId: docId
};
const headers = {
Authorization: token,
'Content-Type': 'application/json'
};
const result = await fetch(path, {
body,
headers,
});
if (result.status !== 200) {
throw new Error('failed to get doc');
}
return result.json();
};
@VijayanathViswanathan當然,我已經在API網關中完成了基本的CORS配置。正如我上面提到的,在帖子中API調用成功。但它在我的前端代碼中不起作用 –
「授權」請求標頭和「Content-Type:application/json」都會觸發瀏覽器執行預檢。所以這個問題正如我在之前的評論中所描述的那樣:您需要重新配置服務器以不要求對OPTIONS請求進行授權。原因是,瀏覽器在執行預檢OPTIONS請求時不會發送授權請求標頭。它不這樣做的原因是因爲該OPTIONS請求的整個目的是爲了讓瀏覽器詢問服務器,您是否允許擁有授權標頭的跨源請求? – sideshowbarker