我正在使用 vuejs 和 axios 从外部 API 获取信息。
当我发送 POST 请求时,这个 API 需要一个拦截器来发送一个身份验证令牌。
我创建了一个包含以下代码的 API.js 文件:
import axios from 'axios';
import Vue from 'vue'
const instance = axios.create({
baseURL: 'http://localhost:8004/'
})
instance.interceptors.request.use((config) => {
const token = Vue.prototype.$keycloak.token;
if (token) {
config.headers.Authorization = `Bearer ${token}`
}
return config
}, (err) => {
return Promise.reject(err)
})
export default instance
当我发送请求时一切正常:
import API from '../api'
API.post(/intents/)
到目前为止一切顺利。然而,这个请求是一个长时间运行的调用,这意味着:
客户端应用程序发送一个 HTTP 请求来触发一个 长时间运行的操作 - 这通常仅限于 执行某种状态更新的操作,即 POST 或 PUT 请求
响应将返回 HTTP 202 Accepted 状态,表示 请求已排队等待处理
响应还将包含一个位置 HTTP 标头,指定 状态端点的 URI
客户端应用程序将轮询状态端点以检索 操作状态(等待、运行、成功、失败等)。
一旦操作完成,状态端点通常会 返回另一个位置 HTTP 标头,指定的 URI 结果资源(即已创建/更新的资源)
客户端应用程序向此 URI 发出请求以检索 资源
在这种情况下,我需要在 Axios 拦截器/助手函数中添加 This Code,以便任何发出 HTTP 请求的代码都会自动执行上述步骤。
我应该在哪里包含这个代码?在同一个文件 API.js 上?