簡體   English   中英

XMLHttpRequest 到 API GATEWAY 不起作用

[英]XMLHttpRequest to API GATEWAY not working

我試圖調用 API Gateway 以顯示它使用 XMLHttpRequest 返回的 JSON。我的網頁托管在 AWS S3 上。 當我嘗試時,出現以下錯誤-

無法加載 {url of API}:預檢響應中的 Access-Control-Allow-Headers 不允許請求標頭字段 Access-Control-Allow-Origin。

請求的代碼是 -

var config = {
            headers: {
            "Access-Control-Allow-Origin": "*",
            "Access-Control-Allow-Credentials": "true",
            "Access-Control-Allow-Methods": "DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT",
            "Access-Control-Allow-Headers": "Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token"
            }
            } 

            axios.get(API_URL,config)
            .then(function (response) {
                    console.log(response);
            })

我在亞馬遜 s3 中的 CORS 設置是

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>https://s3.ap-south-1.amazonaws.com</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>

詳細信息 - 托管在 AWS S3 上的網頁向 AWS API 網關發送請求

背景 -
在stackoverflow上檢查了thisthis ,但它無法幫助我解決問題。

編輯:

如前所述,我嘗試從 axios 調用中刪除配置。 我得到了一個錯誤

請求的資源上不存在“Access-Control-Allow-Origin”標頭。 因此,不允許訪問來源“ https://s3.ap-south-1.amazonaws.com ”。

這個方法對我有用

我使用的代碼:-

        axios.get(API_URL)
        .then(function (response) {
                console.log(response);
        })

AXIOS 的 CDN -
<script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.18.0/axios.min.js"></script>

然后我必須在 API GATEWAY 中啟用我缺少的響應頭
可以使用此處提到的步驟或@Michael-sqlbot 在評論中提到的官方 AWS 網站上的步驟來完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM