将 Javascript Fetch 请求转换为 Angular Http 客户端不起作用

Posted

技术标签:

【中文标题】将 Javascript Fetch 请求转换为 Angular Http 客户端不起作用【英文标题】:Conversion of Javascript Fetch request to Angular Http client not working 【发布时间】:2020-10-30 17:43:48 【问题描述】:

我正在尝试使用 Angular HttpClient 访问 truelayer 客户端 API。该请求适用于 Sandbox API,但是,对于实时环境 API,我得到了“internal_server_error”。下面是我的Httpclient代码

this.http.post<tokentype>('https://auth.truelayer.com/connect/token','grant_type':'authorization_code','client_id':'<my-id>','client_secret':'<my-client-secret>','redirect_uri':'<my-redirect-url>','code':'<access-code>', headers: new HttpHeaders('Content-Tye':"application/json; charset=utf-8"))
       .subscribe(data => 
         console.log('Token Finally Gotten 1:');
         console.log(data);      
        , error => 
        console.log('Error 1: ' + JSON.stringify(error))
       );

当我将 Url 更改为 https://auth.truelayer-sandbox.com/connect/token 时,它工作正常。下面是我从 Truelayer Postman 那里得到的 jQuery 代码

var settings = 
  "url": "https://auth.truelayer.com/connect/token",
  "method": "POST",
  "timeout": 0,
  "data": 
    "grant_type": "authorization_code",
    "client_id": "",
    "client_secret": "",
    "redirect_uri": "https://console.truelayer.com/redirect-page",
    "code": ""
  
;

$.ajax(settings).done(function (response) 
  console.log(response);
);

【问题讨论】:

【参考方案1】:

似乎有些参数不匹配。请验证您输入的 clientid、凭据、redirecturl 等值是否与实时环境相关,而不是沙盒。

【讨论】:

以上是关于将 Javascript Fetch 请求转换为 Angular Http 客户端不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如何在 JavaScript 中将 Ajax 转换为 Fetch API?

如何从 fetch javascript 请求的响应中获取数据

使用 javascript fetch api 执行 POST 请求

使用 fetch 发送带有数据对象的 get 请求

POST请求 之 对数据进行编码处理

如何将 instagram curl 发布请求转换为 javascript 请求?