css 未捕获(在承诺中)语法错误:脚本. js:8:42处的输入意外结束

ev7lccsx  于 2023-01-06  发布在  其他
关注(0)|答案(2)|浏览(119)

我正在尝试使用this api创建ROBLOX资产ID返回器。我正在使用产品信息函数/api get request。我已经创建了一个脚本,但是当我非常接近完成时,我不断地得到错误Uncaught (in promise) SyntaxError: Unexpected end of input at script.js:8:42
如果有人能帮忙,我将不胜感激!
我将在下面链接我的代码。

    • JavaScript代码**
function convert()
{
    var input = document.getElementById("AssetConverterArea").value;
    var output = document.getElementById("assetIdReturn");
    var webRequest = fetch('https://api.roblox.com/marketplace/productinfo?assetId=' + input, {'mode': 'no-cors'});
    var assetId = webRequest.AssetId;

    webRequest.then(responce => responce.json()).then(d => {
            console.log(responce)
            assetId = d.AssetId;
        });

    if (assetId === undefined)
    {
        output.innerHTML = "Invalid Asset ID";
    } else {
        output.innerHTM = 'Your asset ID is: ' + assetId;
    }
}
    • HTML代码**
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Home</title>
    <link rel="icon" type="image/x-icon" href="Media/assetid.png">
    <link rel="stylesheet" href="style.css">

    <script src="script.js" defer></script>
</head>
<body>
    <header>
        <nav>
            <ul class="navLinks">
                <li class="navLink"><a href="index.html" class="navHref">Home</a></li>
                <li class="navLink"><a href="credits.html" class="navHref">Credits</a></li>
                <li class="navLink"><a href="about.html" class="navHref">About</a></li>
            </ul>
        </nav>

        <span class="favicon"><img src="Media/assetid.png" alt=""></span>
    </header>

    <div class="line"></div>

    <h1 class="title">Asset Converter</h1>

    <p class="description">
        This website is a simple tool to convert your Roblox decal & library IDs into Roblox Asset IDs. <br><span style="font-weight: 800;"> Thank you for checking out the website!</span>  
    </p>
        
    </p>

    <div class="AssetDiv"><textarea placeholder="Decal ID" id="AssetConverterArea"></textarea></div>

    <button class="convertButton" onclick="convert()"><span class="convertText">Convert</span></button>

    <p id="assetIdReturn">Convert your ID, and get a return!</p>

    <p class="sourceCode">This entire project's source code is free for you to check out on <a style="color: rgb(73,0,250); text-decoration: none;" href="https://github.com/hartleyfr/RobloxAssetReturner/tree/main">my github</a></p>
</body>
</html>

我尝试使用CORS-Everywhere函数,但没有效果。我尝试使用StackOverflow上的修复程序,但它不起作用。
我期望它按如下方式工作

  • 获取API返回和表,在表中查找资产ID,如果代码找不到assetId,它会说ID无效,并要求它重新执行。如果找到了,它会将其显示给用户。*
gcuhipw9

gcuhipw91#

您的请求中存在一系列承诺解析方面的问题,但简单地说,此概念是不可能的,因为如果不在浏览器级别禁用CORS,您就无法运行此脚本,出于安全原因,您无法从网页执行此操作。
您正在传递请求模式no-cors,但这意味着响应不能被您的JS代码访问。https://developer.mozilla.org/en-US/docs/Web/API/Request/mode
这个获取永远不会起作用,因为API不允许跨域服务器发出请求。

vhipe2zx

vhipe2zx2#

为此,您需要从服务器(例如Node.js服务器)发出ROBLOX API请求,并使HTML页面与服务器交互(最简单的方法是创建CORS代理,如答案https://stackoverflow.com/a/43268098/19461620所示)

相关问题