当前位置: 首页 > 知识库问答 >
问题:

为什么当OPTIONS请求的statusCode为200时,我会在API Gateway get请求上得到CORS错误?

宇文育
2023-03-14

火狐:

跨来源请求被阻止:相同来源策略不允许读取位于[url]的远程资源(原因:缺少CORS头'Access-Control-Allog-Origin')。

铬:

const getPolicy = (baseUrl, bucketNameTranscribe, fileName, apiKey) => (
    new Promise((resolve, reject) => {
        request({
             url: `${baseUrl}?bucketName=${bucketNameTranscribe}&key=${fileName}`,
             method: "GET",
             headers: {
                 "x-api-key": apiKey
             }
        }, ((error, response) => {
            if (error) {
                reject(error);
            } else if (response.statusCode === 200) {
                resolve(JSON.parse(response.body));
            } else {
                reject(response);
            }
        });
    })
);

const upload = async() {
    const {
        policyUrl,
        bucketNameTranscribe,
        apiKey
    } = awsConfig;
    const fileName = `${Date.now()}.mp3`;
    const req = new Request(
        `${policyUrl}?bucketName=${bucketNameTranscribe}&key=${fileName}`,
         {       
             method: "GET",
             headers: new Headers({
                 "x-api-key": apiKey
             })
         }
    );

    try {
        const response1 = await fetch(req);
        console.log("fetch", response1);
    } catch (error) {
        console.error("errorFetch", error);
    }

    try {
        const response2 = await getPolicy(policyUrl, bucketNameTranscribe, fileName, apiKey);
        console.log("request", response2);
    } catch (exp) {
        console.error("errorRequest", exp);
    }
}

共有1个答案

卞嘉许
2023-03-14

错误消息显示:

请求的资源上没有“访问-控制-允许-来源”标头。

实际资源中缺少access-control-allog-origin标头,而不是对预飞行选项请求的响应。

 类似资料:
  • 本文向大家介绍ajax请求中为何会出现OPTIONS请求?相关面试题,主要包含被问及ajax请求中为何会出现OPTIONS请求?时的应答技巧和注意事项,需要的朋友参考一下 https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Methods/OPTIONS CORS会在请求前先发送OPTIONS请求

  • 问题内容: 我在wp主题中设置了基本的wordpress ajax示例。触发是由modernizr.js检查页面上的媒体查询来完成的。 我已经本地化了脚本并使其入队。 最后处理请求的函数是: 这总是使我的响应为0(无属性),我也不知道为什么。PS这都是本地的。 问题答案: 一切都必须在这里匹配: PHP JS

  • 我可以通过在API类中添加方法(在相同的)来解决这一问题,但我希望不必对所有方法都这样做。 在处理一个选项请求时,如何找出实际的(Get/Post)资源方法?

  • 问题内容: 我在我的角度应用程序中定义了以下服务: 我正在编写以下规范对其进行测试: 每当我运行测试时,第一个测试通过,但第二个测试产生错误: 我究竟做错了什么? 编辑: 原来,我已经配置是这样的… 。但是我在打电话给我。注意缺少“ /”。一旦我添加了斜线,一切都很好:) 问题答案: 您需要告诉$ httpBackend期待GET请求。 或者,您可以穿上自己的衣服。我更喜欢用那种方式陈述我的陈述,

  • 我使用axios与自己的API(不是用NodeJS编写的)通信。 当我发布一个非简单的请求时,axios总是直接转到控制台中显示网络错误的catch块,即使有2个成功的Http请求。 错误:网络错误堆栈跟踪:createerror@http://localhost:3000/statist/js/bundle.js:1634:15 handleerror@http://localhost:3000

  • 问题内容: 在我的应用中,我正在创建从HTTP到HTTPS的AJAX请求。这意味着我需要CORS。因此,我向jQuery.ajax添加了一些标题和参数并对其进行了测试。在Firefox中,一切正常,但在Chrome中,一切正常。Chrome会“杀死”每一个预先提出的请求(选项)。 jQuery脚本: HTTP转储: 有人知道为什么Chrome会终止此请求吗? 问题答案: 也许您的https服务器具