是否可以使用 aadHttpClientFactory 将删除/放置请求发送到 Azure AD

我有一个使用 Azure AD 保护的自定义 Api,如下面的教程所示: https: //docs.microsoft.com/en-us/sharepoint/dev/spfx/use-aadhttpclient 效果很好。


现在我有以下代码向我的自定义 API(工作)发出 GET 请求:


 this.context.aadHttpClientFactory

.getClient('MY_API_URL')

.then((client: AadHttpClient) => {

  console.log(AadHttpClient.configurations.v1); 


  return client

    .get(

      `MY_API_URL/SOME_ROUTE`,

      AadHttpClient.configurations.v1

    );

})

.then(response => {

  var res=  response.json();

  return res;

}).then( (res: any[]) => {

...


HERE I WOULD LIKE TO GET MY TOKEN


});

所以这是按照我期望的方式工作的。但是 aadHttpClientFactory 只支持 GET 和 POST 请求


现在我的想法是用 jQuery 发出一些 PUT/DELETE 请求,并使用我上面得到的 Bearer 令牌(用邮递员和它的工作测试)。但后来我意识到,我不会那么容易得到令牌。当我 console.log(AadHttpClient.configurations.v1) 我只得到这个:

http://img2.mukewang.com/61b55433000103cc03810273.jpg

当然,我可以将我的 API 更改为使用 POST 而不是 PUT/DELETE,但这会非常难看有没有人知道如何将令牌作为字符串来执行自定义请求?


海绵宝宝撒
浏览 173回答 2
2回答

胡子哥哥

AadHttpClient支持该fetch(url, configuration, options)方法,其中options可以包含Fetch API支持的所有请求配置选项。因此,要发出 DELETE 请求,您将执行以下操作:client    .get(      `MY_API_URL/SOME_ROUTE`,      AadHttpClient.configurations.v1,      {          method: 'DELETE'      }    );

qq_笑_17

我现在解决了。也许我的回答以后会对某人有所帮助。根据 philippe Signoret 的回答,这是 fetch() 函数。我不得不像下面这样使用它:        this.context.aadHttpClientFactory        .getClient(api_url)        .then((client: AadHttpClient) => {          return client            .fetch(              MY_URL,              AadHttpClient.configurations.v1,              {                method: METHOD, //put/DELETE etc.                headers: [                  ["Content-Type", "application/json"]                ],                body: JSON.stringify({                  YOUR REQUEST BODY                })              }            )          });
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript