问题标签 [axios]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 等待循环中调用的所有承诺完成
我正在使用axios promise 库,但我认为我的问题更普遍。现在我正在循环一些数据并在每次迭代中进行一次 REST 调用。
随着每次调用完成,我需要将返回值添加到对象中。在高层次上,它看起来像这样:
当然,发生的事情是当我调用console.log
它mainObject
时还没有任何数据,因为 axios 仍在伸出援手。处理这种情况的好方法是什么?
Axios 确实有一个all
方法和一个姊妹方法spread
,但是如果您提前知道要进行多少次调用,它们似乎很有用,而在我的情况下,我不知道会有多少循环迭代。
javascript - 使用es6类扩展axios
我对创建 API 包装器并使用 es6 类从 axios 扩展很感兴趣。这怎么可能?axios 有一个方法 .create() 允许你生成一个新的 axios 对象
我知道我可以访问这个let instance = axios.create()
。
有什么想法吗?
尝试 1
尝试 2
javascript - 单元测试依赖项没有被嘲笑
我正在尝试将开玩笑的单元测试添加到我的新 react-redux 项目中。我创建了我的第一个测试文件来测试我的一个容器,例如:
在 event-form.js 文件中,我从动作中导入了一个函数,即:
在 actions.index.js 文件中,我正在导入 axios 模块:
如果我此时尝试运行测试,我会从 axios 代码中得到错误:
我认为开玩笑的整个事情就是一切都被嘲笑了。actions/index.js 似乎是如何随着它的导入而被初始化的?
javascript - 用于单元测试的 NodeJS 中的模块导出回调
我有以下代码在我的项目中使用 axios 建立服务器连接:
我正在使用 Jest 作为测试框架,并且我成功地模拟了 axios,但是我对这个 then-Function 有一个问题:
但是,在运行测试时,我收到以下错误消息:
TypeError: _axios2.default.get(...).then 不是函数
我必须以某种方式找到一种方法来告诉它存在并且是一个函数。我必须在 module.exports 中执行此操作。关于如何做到这一点的任何想法?
node.js - Phoenix 应用程序中的 Poison.Encoder 异常
我有一个使用 Guardian 和 Uberauth 保护的凤凰应用程序,它从节点应用程序(GraphQL 服务器)接收帖子。通过在授权标头中传递 JWT 来保护它。
授权似乎工作正常,但是在我的 Phoenix 控制器中,它正在爆炸
** (FunctionClauseError) no function clause matching in Poison.Encoder.BitString.chunk_size/3
(poison) lib/poison/encoder.ex:127: Poison.Encoder.BitString.chunk_size(<<5, 230, 171, 122, 183, 178, 38, 22, 198, 114, 35, 162, 36, 133, 51, 83, 19, 34, 34, 194, 39, 71, 151, 2, 35, 162, 36, 165, 117, 66, 39, 13::size(4)>>, nil, 0)
在我添加身份验证之前,它工作正常。更奇怪的是,一个 curl 请求,如下所示:
curl -i -H "authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJVc2VyOjIiLCJleHAiOjE0OTU2MjU3MjEsImlhdCI6MTQ2NDA4OTcyMSwiaXNzIjoiU2hvcHNoYXJlIiwianRpIjoiMDE2OTJjMzctM2QxYi00Yzc5LThiMjYtYzExN2QyNTM1MGI5IiwicGVtIjp7fSwic3ViIjoiVXNlcjoyIiwidHlwIjoidG9rZW4ifQ.GfqVSw3hPsy-zOp1yx6IXAGhM4uX0CsMbU3DHqtFCn7SQYPi24DJ2F4yC48cfiQi82-hvpUoxdnFm_x5osBb3w" -H "Accept: application/json" -H "Content-Type: application/json" -X POST -d '{"comment": {"content": "test"}}' http://localhost:8081/api/v1/current_user/products/1/comments
正如预期的那样,100% 正确工作!
我传出的 Axios 请求如下所示:
frontend_1 | { headers:
frontend_1 | { authorization: 'Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJVc2VyOjIiLCJleHAiOjE0OTU3OTg4OTUsImlhdCI6MTQ2NDI2Mjg5NSwiaXNzIjoiU2hvcHNoYXJlIiwianRpIjoiYWE2YTE2M2YtYzM5ZC00ODVjLTgwMjEtMDMxMjUwNzc4YjcxIiwicGVtIjp7fSwic3ViIjoiVXNlcjoyIiwidHlwIjoidG9rZW4ifQ.4vosfEx69s_90UlCkgWNbxoNNAKuckYvqNRsqfznvzddI-k63LaXz7MWum82aSiHDkiw7L3tk6df8tZVh2Zz_A',
frontend_1 | Accept: 'application/json',
frontend_1 | 'Content-Type': 'application/json' },
frontend_1 | timeout: 0,
frontend_1 | transformRequest: [ [Function: transformResponseJSON] ],
frontend_1 | transformResponse: [ [Function: transformResponseJSON] ],
frontend_1 | method: 'post',
frontend_1 | url: 'http://api:8080/api/v1/current_user/products/2/comments',
frontend_1 | data: { comment: { content: 'test' } },
frontend_1 | withCredentials: undefined }
我有点不知道下一步该尝试什么。似乎无论我在有效负载中发送什么,Elixir 中的字符列表似乎都保持不变。我似乎无法解码该字符列表中的内容,我怀疑这是正在发生的事情的线索。
javascript - 使用 axios 和 express 处理 POST 请求
我似乎无法弄清楚为什么当我使用 axios.post 方法提供数据主体时,它在我的服务器上被捕获为未定义。
我有以下带有代码片段的文件:
应用程序.js:
server.js:
我如何使用 axios 正确处理 POST 数据?我错过了什么吗?
成功返回正常,但似乎在请求中的任何地方都找不到用户名/密码
reactjs - 包装 axios 并访问 redux 状态
我想将 axios 包装在一个实用程序函数中,以便我可以添加保存在 redux 状态中的基本 url 和身份验证令牌
最简单的方法是什么?
我现在如何将它连接到 redux 以便我可以访问 state 和 props?
xmlhttprequest - httponly cookie 在后续的 xhr 请求中不可用
背景
我有一个安静的后端,React + Redux 前端,我正在努力防止 CSRF 和 XSS 攻击。
前端从 API 请求 CSRF 令牌。API 响应在 HttpOnly cookie 和响应正文中设置 CSRF 令牌。redux reducer 将令牌(来自响应正文)保存到 redux 存储。
如果我在主容器中请求令牌componentDidMount()
,一切正常,但问题是这是一次性的。相反,由于对 API 的请求通过自定义中间件,我希望中间件在本地不存在 CSRF 令牌时请求它。
问题
流程如下(在 Chrome 50 和 Firefox 47 上测试):
- 已请求 CSRF 令牌。存储在 HttpOnly cookie 和 redux 存储中的令牌
- 请求带有
X-CSRF-Token
标头集的原始 API 调用。cookie 未发送 - 由于缺少 cookie,从 API 接收 403。API 以新的 HttpOnly cookie响应。Javascript 看不到这个 cookie,所以 redux 存储没有更新。
- 使用步骤 2 中的 X-CSRF-Token 标头和步骤 3 中的 cookie 请求的其他 API 调用。
- 由于 cookie 与 X-CSRF-Token 不匹配而收到 403
如果我在第 2 步之前添加延迟window.setTimeout
,cookie 仍然没有发送,所以我认为浏览器没有足够的时间保存 cookie 不是竞争条件?
动作创建者
中间件
reactjs - reactJS如何阻止它监听ajax请求
我在componentdidmount中有ajax调用。然后在 ajax 承诺中设置状态。
代码是这样的
当我导航到其他路线时,这会导致错误“无法在未安装的组件上设置状态”。
所以我认为我应该做的是在componentwillunmount中移除axios监听器。你会怎么做?