我正在尝试调用 aws Cognito 的 post API(令牌端点)。它在我的邮递员客户端中完美运行。但是我在我的 VueJS 代码中遇到了这个问题。
下面是我的代码片段。
测试.vue
<script>
HTTP.post(`token`, {
'grant_type': 'authorization_code',
'client_id': 'XXXXXXXXXXXXXXXXXXXXXXXXX',
'redirect_uri': 'http://localhost:8080/callback',
'code': this.$route.query.code
})
.then(response => {
console.log('Response: ' + response)
})
.catch(e => {
console.log('Error: ' + e)
})
</script>
我成功地从登录端点获取“代码”值 在上面的代码中,HTTP 是从下面的其他 javascript 导入的对象。
http-common.js
import axios from 'axios'
export const HTTP = axios.create({
baseURL: 'https://maddox.auth.eu-west-1.amazoncognito.com/oauth2/',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
})
我不确定,但问题是在我的邮递员中,我在正文 + 标题中使用了 'application/x-www-form-urlencoded' 选项。在这里我无法在正文中设置此值。
我的标题和正文中的“应用程序/x-www-form-urlencoded”选项设置不正确。
我尝试过使用 {emulateJSON:true} 选项。但没有奏效!
我收到HTTP 代码:400
{"data":{"error":"invalid_request"},"status":400,"statusText":"Bad Request","headers":{"pragma":"no-cache","content-type" :"application/json;charset=UTF-8","cache-control":"no-cache, no-store, max-age=0, must-revalidate","expires":"0"},"config ":{"transformRequest":{},"transformResponse":{},"timeout":0,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN","maxContentLength":- 1,"headers":{"Accept":"application/json","Content-Type":"application/x-www-form-urlencoded"},"method":"post","baseURL":" https ://maddox.auth.eu-west-1.amazoncognito.com ","url":" https://maddox.auth.eu-west-1.amazoncognito.com/oauth2/token ","data":" {\"grant_type\":\"authorization_code\",\"client_id\":\"4jcmshlse80ab667okni41fbf5\",\"redirect_uri\":\" http://localhost:8080/callback\",\"代码\":\"e19170dc-3d8f-420e-99b6-c05f7abad313\"}"},"request":{}}