首页 文章

Chrome CORB阻止了APIGateway lambda请求

提问于
浏览
5

What works

我有一个简单的文字游戏我已经 Build . 它很棒 . 用户要求的一件事是单词有效性检查 . 我在AWS Lambda Proxy / Node.js endpoints 上运行牛津字典api,当我通过浏览器访问APIGateway uri时,它运行良好 .

我选择了AWS Lambda函数来保护我的Oxford API密钥,并且有更多的直接CORS控制 .

Steps taken

我在AWS APIGateway中启用了CORS,并在开发期间使用了“*”通配符 .

我开始使用我的本地服务器@ 127.0.0.1对游戏进行编码 .

Error encountered

我遇到了以下问题:

myproject.html:57跨源读取阻止(CORB)阻止了跨类型响应https://XXXXXXXXXXX.execute-api.us-east-2.amazonaws.com/prod/dictionary?word=help,MIME类型为application / json . 有关详细信息,请参阅https://www.chromestatus.com/feature/5629709824032768 . getWord @ myproject.html:57(匿名)@ myproject.html:67

The client code

我正在使用简单的提取:

var base_url = "https://XXXXXXXXXXX.execute-api.us-east-2.amazonaws.com/prod/dictionary?word=";
            getWord = function(word){
               fetch(base_url+word, {
                    headers: {
                        'content-type': 'application/json'
                    },
                    method: 'GET', 
                    mode: 'cors'
               }).then(function(response) {
                    console.log(response);
               });
            }

The question

我从未听说过CORB . 我不明白什么是触发CORB,以及解决这个问题的步骤是什么 . 如何解决CORB问题?

1 回答

  • 6

    我显然需要坚持下去 . 万一有人碰到这个:

    尽管启用了APIGateway CORS,但在启用Lambda代理集成的情况下,CORS权限将传递给lambda函数 . 尽管APIgateway接受了初始URI请求,但由于lambda响应中缺少头文件,它最终失败了 . 不知怎的,这触发了CORB而不是CORS . 我不知道为什么 .

    答案是确保在APIgateway中启用CORS,并且lambda函数响应回调模式包含“Access-Control-Allow-Origin”标头 .

相关问题