使用 JScript 从 tfs 扩展调用 Rest API

Calling a Rest API from tfs extension with JScript

我基本上使用 3 种不同的 JS 方法从 api 获取数据,但它们 return 错误 405:不允许使用方法,但服务器中允许使用 get 方法。它正在使用变量的路径,所以我想知道它是否与此有关。

这是我称之为 API 的方法代码。

获取方法;

    function getCompleted(queryParam) {
                    $('#loader').removeClass('hidden');
                    $('#loaded').addClass('hidden');
                    fetch("****/fullprofile/" + queryParam, {
                            method: "GET", headers: {
                                    "User": "*****",
                                    "Content-Type": "application/json"
                            }
                    })
                            .then((data) => {
                                    const contentType = response.headers.get('content-type');
                                    console.log(contentType);
                                    return data.json()
                            })
                            .then(function (result) {
                                    ResponseBody = result;

                                    $('#loader').addClass('hidden');
                                    $('#loaded').removeClass('hidden');
                            }).catch(function () {
                                    $('#loader').addClass('hidden');
                                    $('#loaded').removeClass('hidden');
                            });
            }

HTTP 请求方法;

function httprequest(queryParam2) {
                    $('#loader').removeClass('hidden');
                    $('#loaded').addClass('hidden');
                    var xmlhttp = new XMLHttpRequest();
                    xmlhttp.withCredentials=true;
                    var url = "*****/fullprofile/";
                    xmlhttp.onreadystatechange = function (data) {
                            console.log(this.responseText);
                            console.log(data);                                
                    }
                    xmlhttp.open("GET", url + queryParam2);
                    xmlhttp.setRequestHeader("User", "*****");
                    xmlhttp.send();
            }

Ajax方法;

function ajax(queryParam3) {

                    $.ajax({
                            url: "****/fullprofile/" + queryParam3,
                            "method":"GET",
                            "headers":{
                                    "User":"EBT\****"
                            },
                            success: function (data) {
                                    ResponseBody = data;
                            console.log(data);
                            }
                    });   
            }

谢谢大家的建议和帮助。

您尝试查阅的资源可能没有使用动词 GET。

你要确认资源是用哪个动词获取的

看这里: 405 Method Not Allowed MDN Docs

在 api 的文档中确认请求资源的动词。我可能是 POST、PUT 等

Here you can look explanation

原因是用 headers 发送;它 returns 需要再次响应的选项并且在 JS 中不值得做所以我决定制作一个网关 api 来使用 api 我有 header .

谢谢。