You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:开发Roblox Asset ID返回器时遇Promise语法错误

问题修复方案

核心错误分析

你碰到的Unexpected end of input错误,根源是这几个问题:

  • no-cors模式导致无法读取响应:设置mode: 'no-cors'后,浏览器会返回一个无法读取内容的「不透明响应」,调用response.json()自然会解析失败,因为没有可解析的内容。
  • 异步逻辑顺序错误:fetch是异步操作,你在请求还没完成时就直接判断assetId的值,此时assetId肯定是undefined,导致直接输出"Invalid Asset ID"。
  • 拼写错误:代码里responce(应为response)、output.innerHTM(应为innerHTML)都是低级拼写错误,会导致功能失效。
  • CORS跨域限制:Roblox的这个API默认不允许前端直接跨域请求,即使去掉no-cors也会触发CORS错误。

修正后的代码

JavaScript代码

async function convert() {
    const input = document.getElementById("AssetConverterArea").value;
    const output = document.getElementById("assetIdReturn");
    
    // 先做输入校验,避免无效请求
    if (!input || isNaN(input)) {
        output.innerHTML = "Invalid Asset ID";
        return;
    }

    try {
        // 使用CORS代理绕过跨域限制(生产环境建议自行搭建后端中转)
        const proxyUrl = 'https://api.allorigins.win/get?url=';
        const targetUrl = encodeURIComponent(`https://api.roblox.com/marketplace/productinfo?assetId=${input}`);
        
        const response = await fetch(proxyUrl + targetUrl);
        const data = await response.json();
        
        // 解析代理返回的原始内容
        const assetData = JSON.parse(data.contents);
        
        if (assetData.AssetId) {
            output.innerHTML = `Your asset ID is: ${assetData.AssetId}`;
        } else {
            output.innerHTML = "Invalid Asset ID";
        }
    } catch (error) {
        console.error('请求失败:', error);
        output.innerHTML = "Failed to retrieve asset ID";
    }
}

关键修改点

  • 改用async/await简化异步逻辑,确保请求完成后再处理结果。
  • 增加输入校验,提前拦截非数字或空输入。
  • 引入CORS代理绕过跨域限制(生产环境建议自行搭建后端中转,避免依赖第三方服务)。
  • 修正所有拼写错误,规范变量命名。

关于CORS问题的长期解决方案

Roblox官方API大多不支持前端直接跨域请求,推荐两种稳定方案:

  • 搭建后端中转服务:用Node.js、Python等语言写一个简单的后端接口,由后端发起请求Roblox API,再把结果返回给前端,彻底规避跨域问题。
  • 确认官方支持CORS的接口:查阅Roblox开发者文档,确认是否有支持前端跨域调用的替代API端点。

内容的提问来源于stack exchange,提问作者anoliver

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 00:25:16