首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我正在尝试调用第三方api,但它给我一个CORS错误

我正在尝试调用第三方api,但它给我一个CORS错误
EN

Stack Overflow用户
提问于 2020-05-17 11:19:35
回答 1查看 175关注 0票数 0
代码语言:javascript
代码运行次数:0
运行
复制
const https = require('https');

export async function main(event, callback) {
    const options = {
        method: 'GET',
        host: 'https://api.challonge.com/v1/',
        headers: {
            'Access-Control-Allow-Methods': 'GET',
            "api_key": "THE_KEY",
            "Access-Control-Allow-Origin": "*",
            "Access-Control-Allow-Credentials": true
        }
    };
    var dataString = " ";

    const response = await new Promise((resolve, reject) => {
        const req = https.get(options, function (response) {
            response.on('data', chunk => {
                dataString += chunk;
            });
            response.on('end', () => {
                resolve({
                    statusCode: 200,
                    headers: {
                        "Access-Control-Allow-Origin": "*"
                    },
                    body: JSON.stringify((dataString))
                });
            });
        });
        req.on('error', (e) => {
            reject({
                statusCode: 500,
                headers: {
                    "Access-Control-Allow-Origin": "*"
                },
                body: e.message
            });
        });
    });
    return response;
};

这是lambda函数^

代码语言:javascript
代码运行次数:0
运行
复制
getChallongeTournaments:
    handler: getChallongeTournaments.main
    events:
      - http:
          path: tournaments/
          method: get
          cors: true
          authorizer: aws_iam

我的serverless.yml

代码语言:javascript
代码运行次数:0
运行
复制
// in a useEffect
function getChallongeTournaments(){
     return API.get("byoc_users", '/tournaments.json');
    }
    async function onLoaded() {
      try {
       const testChallonge = await getChallongeTournaments();

^ API调用

根据challonge文档,这应该是“检索用您的帐户创建的一组锦标赛”。有一个是被创造出来的。

这是我收到的CORS错误:从源'http://localhost:8100‘访问位于'https://m3heucf413.execute-api.us-east-2.amazonaws.com/prod/tournaments.json’的XMLHttpRequest已被CORS策略阻止:对印前检查请求的响应未通过访问控制检查:它没有HTTP ok状态。

EN

回答 1

Stack Overflow用户

发布于 2020-05-17 12:48:12

当存在从域/端口到整个新域/端口的请求时,浏览器将引发印前检查请求和CORS标志。如果您这样做是为了测试,您可以通过添加--disable-web-security标志在chrome中禁用此安全标志。只需创建一个chrome到桌面的快捷方式>右键单击>属性>在快捷方式选项卡中-目标>附加--disable-web-security --user-data-dir="C:\tmpChromeSession"到目标。这将禁用CORS检查。

如果您对第三方api服务器配置有访问/控制权限,那么您应该做的就是向响应中添加必要的响应头(Access-Control-Allow-Origin)。如果您没有访问权限,一种选择是通过CORS代理来路由请求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61846549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档