如何用Javascript在GitLab Pages上获取GitLab任务状态?
解决GitLab API获取任务状态404的问题
你的代码存在几个关键问题,直接导致了404错误:
- 请求方法错误:获取单个任务状态需要用
GET请求,而非POST。POST方法在这个API路径下是用于创建任务的,并非查询操作。 - API路径错误:查询单个任务状态的正确路径是
/projects/{项目ID}/jobs/{任务ID},你当前使用的/projects/{项目ID}/jobs是获取项目下所有任务列表的接口,无法定位到单个任务。 - 参数传递错误:任务ID不需要放在请求体中,而是要直接拼接在URL路径里。
修正后的代码如下:
fetch('https://gitlab.devops.telekom.de/api/v4/projects/165107/jobs/78912', { method: 'GET', headers: { 'Accept': 'application/json', 'PRIVATE-TOKEN': 'TOKEN' } }).then(response => { if (!response.ok) { throw new Error(`HTTP错误!状态码: ${response.status}`); } return response.json(); }).then(response => console.log(JSON.stringify(response))) .catch(error => console.error('请求出错:', error));
额外注意:
- 确保你的
PRIVATE-TOKEN拥有该项目的读取权限,权限不足也可能引发404或403错误。 - 如果GitLab Pages是公开可访问的页面,绝对不要把私有Token直接写在前端代码中,会导致Token泄露,建议通过后端代理转发API请求。
内容的提问来源于stack exchange,提问作者Marten
相关产品推荐
相关产品推荐

