相关疑难解决方法(0)

当http:// localhost是起源时致命的CORS

即使我使用适当的头设置服务器(nginx/node.js),我仍然遇到这个CORS问题.

我可以在Chrome网络窗格中看到 - >响应标题:

Access-Control-Allow-Origin:http://localhost
Run Code Online (Sandbox Code Playgroud)

应该做的伎俩.

这是我现在用来测试的代码:

var xhr = new XMLHttpRequest();
xhr.onload = function() {
   console.log('xhr loaded');
};
xhr.open('GET', 'http://stackoverflow.com/');
xhr.send();
Run Code Online (Sandbox Code Playgroud)

我明白了

XMLHttpRequest cannot load http://stackoverflow.com/. Origin http://localhost is not allowed by Access-Control-Allow-Origin.
Run Code Online (Sandbox Code Playgroud)

我怀疑它是客户端脚本中的问题而不是服务器配置...

javascript html5 xmlhttprequest cors xmlhttprequest-level2

150
推荐指数
9
解决办法
24万
查看次数

为什么我不能使用 Axios 通过 GitHub REST API 进行身份验证?

我对 REST 有点陌生..

为了全面公开,我在 Netlify Lambda 函数内运行此代码并通过 netlify-lambda 进行测试。

我的 curl 命令有效:

 curl -u "<username>:<password>" https://api.github.com/repos/<username>/<reponame>
Run Code Online (Sandbox Code Playgroud)

但是当我尝试通过 axios 获取请求时,我得到了 404(根据 github 文档,这意味着身份验证问题)。这就是我正在做的事情(如果没有自定义标题也不起作用,我只是在尝试一些随机的东西)。

axios({
    method: "get",
    url: `https://api.github.com/repos/${user}/<reponame>/`,
    headers: {
        Authorization: `Bearer ${githubToken}`,
        "Content-Type": "application/json"
    },
    auth: {
        username: user,
        password: pass
    }
    })
    .then(res => {
        callback(null, {
            statusCode: 200,
            body: JSON.stringify(res.data)
        });
    })
    .catch(err => {
        callback(err);
    });
Run Code Online (Sandbox Code Playgroud)

我注意到的一件事是 axios 似乎正在获取我的用户名和密码并将它们添加到 url ig https://<username>:<password>@api.github.com/repos/<username>/<reponame>

这是应该如何发送身份验证?

javascript node.js github-api axios

6
推荐指数
1
解决办法
2798
查看次数