jQuery.get 没有从有效的 URL 中提取数据

jQuery.get is not pulling data from a valid URL

TLDR

jQuery.get() 正确地提取了一个 select 选项 onchange 值的 header 信息,但不是其他的,即使它们是有效的 URLs。


目标

使用 jQuery 和 GitLab API 验证 header 值的 header 信息,当用户更改时和提交表单之前。


进程


实际结果

控制台报告找不到有效 URLs 的项目。

选择每个值都会产生以下控制台信息:

请记住,所有 URL 都是有效的并且包含我要查找的正确数组数据。


预期结果

我的期望是,既然一个 URL 可以正常工作,那么所有的 URL 都应该正常工作,因为它们都是有效的 URL。以下是所需结果的示例:


错误

错误信息 returned:

我已经登录到 gitlab,所以身份验证应该不是问题。


已尝试


代码

<!DOCTYPE html>
<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
        <script>
            $(document).ready(function(){
                $(".opt0").change(function(){
                    var url = "https://gitlab.com/api/v4/projects/" + this.value + "/repository/tree";
                    $.get(url, function( data ) { 
                        console.log(data);
                    }, "json" );  
                });
            });
        </script>
    </head>
    <body>
        <?php
            $menu = array('xxxxxxx', 'yyyyyyy', 'zzzzzzz');
            echo "<select name=selex class='opt0'>";
                echo "<option value=''>---</option>";
                foreach ($menu as $option) {
                    echo "<option value=$option>$option</option>";
                }
            echo "</select>";
        ?>
    </body>
</html>

答案毕竟是身份验证问题。

<script>
    $(document).ready(function(){
        $(".opt0").change(function(){
            var url1 = "https://gitlab.com/api/v4/projects/"+this.value+"/repository/tree";
            var settings = {
              "async": true,
              "crossDomain": true,
              "url": url1,
              "method": "GET",
              "headers": {
                "PRIVATE-TOKEN": "<your token>"
              }
            }
            $.ajax(settings).done(function (response) {
                console.log(response);
            });
        });
    });
</script>