【问题标题】:I can't create cesium asset with react and axios我无法使用 react 和 axios 创建铯资产
【发布时间】:2022-06-23 15:18:27
【问题描述】:

我正在尝试将 .las 文件上传到 cesium.com。 我正在使用 reactjs。
在 cesium rest api 中,你必须在 cesium 上创建一个资产,然后将文件上传到 S3,然后告诉 cesium 文件在 s3 上的位置。 他们在这里给出了 nodejs 的例子:https://cesium.com/learn/ion/ion-upload-rest/

我设法使用 axios 获取我的资产列表并做出如下反应:

try {
        const resp = await axios.get('https://api.cesium.com/v1/assets', {
            headers: {
                'authorization': `Bearer ${accessToken}`
            },
            json: true
        });
        console.log(resp.data);
    } catch (err) {
        // Handle Error Here
        console.error(err);
    }

但是当我尝试创建这样的资产时:

try {
        const resp = await axios.post('https://api.cesium.com/v1/assets', {
            headers: {
                'authorization': `Bearer ${accessToken}`
            },
            json: true,
            body: postBody
        });
        console.log(resp.data);
    } catch (err) {
        // Handle Error Here
        console.error(err);
    }

我得到一个:加载资源失败:服务器响应状态为 401 ()

我已经仔细检查了我的 accessToken,它设置在:assets:list、assets:read、assets:write、geocode、profile:read、tokens:read、tokens:write 所以基本上每件事都应该允许使用这个令牌。

任何人都知道我做错了什么?谢谢。

【问题讨论】:

  • 他们在 nodejs 中给出的例子运行良好。我应该有一个 nodejs api 与 react 应用程序协同工作吗?我宁愿只有一个反应应用程序来保持简单,但我想知道它是否真的可能。

标签: node.js reactjs axios cesium


【解决方案1】:

Cesium 没有为其 API 设置 CORS 标头。因此浏览器阻止了请求。您必须使用代理来访问该端点。

对于本地开发,大多数工具(如 Webpack 或 Vite)都内置了代理。

【讨论】:

    猜你喜欢
    • 2015-04-15
    • 2020-02-03
    • 2021-12-02
    • 2019-04-24
    • 2020-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多