标签: axios

如何从Axios中的http错误中获取状态代码?

这可能看起来很愚蠢,但是当Axios中的请求失败时,我正试图获取错误数据.

axios.get('foo.com')
    .then((response) => {})
    .catch((error) => {
        console.log(error) //Logs a string: Error: Request failed with status code 404
    })
Run Code Online (Sandbox Code Playgroud)

而不是字符串,是否可以获得具有状态代码和内容的对象?例如:

Object = {status: 404, reason: 'Not found', body: '404 Not found'}
Run Code Online (Sandbox Code Playgroud)

javascript axios

135
推荐指数
9
解决办法
10万
查看次数

axios发送表单数据的请求

axios POST请求正在访问控制器上的url,但是将空值设置为我的POJO类,当我浏览chrome中的开发人员工具时,有效负载包含数据.我究竟做错了什么?

Axios POST请求:

var body = {
    userName: 'Fred',
    userEmail: 'Flintstone@gmail.com'
}

axios({
    method: 'post',
    url: '/addUser',
    data: body
})
.then(function (response) {
    console.log(response);
})
.catch(function (error) {
    console.log(error);
});
Run Code Online (Sandbox Code Playgroud)

浏览器响应:

在此输入图像描述

如果我将标题设置为:

headers:{
  Content-Type:'multipart/form-data'
}
Run Code Online (Sandbox Code Playgroud)

请求抛出错误

发布multipart/form-data时出错.Content-Type标头缺少边界

如果我在邮递员中提出相同的请求,它的工作正常并将值设置为我的POJO类.

任何人都可以解释如何设置边界或如何使用axios发送表单数据.

ajaxform reactjs react-redux axios axios-cookiejar-support

132
推荐指数
11
解决办法
23万
查看次数

Axios可以访问响应头字段

我正在使用React和Redux构建一个前端应用程序,我正在使用axios来执行我的请求.我想访问响应标题中的所有字段.在我的浏览器中,我可以检查标题,我可以看到我需要的所有字段都存在(例如令牌,uid等等),但是当我打电话时

const request = axios.post(`${ROOT_URL}/auth/sign_in`, props);
request.then((response)=>{
  console.log(response.headers);
});
Run Code Online (Sandbox Code Playgroud)

我得到了

Object {content-type: "application/json; charset=utf-8", cache-control: "max-age=0, private, must-revalidate"}
Run Code Online (Sandbox Code Playgroud)

这是我的浏览器网络选项卡,因为您可以看到所有其他字段都存在.

在此输入图像描述

最好成绩.

http-headers es6-promise axios

117
推荐指数
8
解决办法
7万
查看次数

Axios“无法在模块外部使用 import 语句”

我有一个 Vue.js 应用程序,其中两个文件包含:

import axios from "axios"

这些文件位于应用程序内的 src/lib 中,并在第一行包含 import 语句。

无论 package.json 说什么,在 Github 上运行测试都会导致安装 Axios 1.0.0,现在涉及这些文件的任何测试都会失败并出现上述错误。

将语句更改为const axios = require("axios")也失败;node_modules/axios/index.js 在第 1 行包含一个 import 语句,并在那里抛出异常。

对于此类问题,我经常看到的一个建议是添加"type": "module"到 package.json (与 src/ 处于同一级别)。这会导致所有测试失败,并要求将 vue.config.js 重命名为 vue.config.cjs。这样做会让我: Error: You appear to be using a native ECMAScript module configuration file, which is only supported when running Babel asynchronously,我不明白。

谁能建议在这里做什么?

node.js vue.js axios

112
推荐指数
7
解决办法
8万
查看次数

如何在axios中设置标题和选项?

我使用axios来执行这样的HTTP帖子:

import axios from 'axios'
params = {'HTTP_CONTENT_LANGUAGE': self.language}
headers = {'header1': value}
axios.post(url, params, headers)
Run Code Online (Sandbox Code Playgroud)

它是否正确?或者我应该这样做:

__CODE__

vue.js axios

100
推荐指数
13
解决办法
22万
查看次数

无法加载响应数据请求内容已从检查器缓存中逐出

我正在尝试通过 Axios 请求从服务器获取大小为(15mb)的文件。显示状态“200”,但不发送文件预览数据(base64)并显示此错误“无法加载响应数据请求内容已从检查器缓存中逐出”在此输入图像描述在检查中的网络预览中。当我成功检索到 2 或 3 MB fille 时。

javascript node.js reactjs axios

100
推荐指数
4
解决办法
13万
查看次数

Axios进入url工作,但第二个参数作为对象,它没有

我正在尝试将GET请求作为第二个参数发送,但它在作为url时不起作用.

这有效,$ _GET ['naam']返回测试:

export function saveScore(naam, score) {
  return function (dispatch) { 
    axios.get('http://****.nl/****/gebruikerOpslaan.php?naam=test')
      .then((response) => {
        dispatch({type: "SAVE_SCORE_SUCCESS", payload: response.data})
      })
      .catch((err) => {
        dispatch({type: "SAVE_SCORE_FAILURE", payload: err})
      })
  }
};
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试这个时,根本没有任何东西$_GET:

export function saveScore(naam, score) {
  return function (dispatch) { 
    axios.get('http://****.nl/****/gebruikerOpslaan.php',
    {
        password: 'pass',
        naam: naam,
        score: score
    })
      .then((response) => {
        dispatch({type: "SAVE_SCORE_SUCCESS", payload: response.data})
      })
      .catch((err) => {
        dispatch({type: "SAVE_SCORE_FAILURE", payload: err})
      })
  }
};
Run Code Online (Sandbox Code Playgroud)

为什么我不能这样做?在文档中,它清楚地表明它是可能的.有了$_POST它也不行.

reactjs react-native redux axios

87
推荐指数
2
解决办法
11万
查看次数

使Axios自动在其请求中发送cookie

我正在使用Axios从客户端向Express.js服务器发送请求.

我在客户端设置了一个cookie,我想从所有Axios请求中读取该cookie,而不是手动添加它们来手动请求.

这是我的客户端请求示例:

axios.get(`some api url`).then(response => ...
Run Code Online (Sandbox Code Playgroud)

我试图通过在Express.js服务器中使用这些属性来访问标头或cookie:

req.headers
req.cookies
Run Code Online (Sandbox Code Playgroud)

它们都不包含任何cookie.我正在使用cookie解析器中间件:

app.use(cookieParser())
Run Code Online (Sandbox Code Playgroud)

如何让Axios自动在请求中发送cookie?

编辑:

我在客户端设置cookie如下:

import cookieClient from 'react-cookie'

...
let cookie = cookieClient.load('cookie-name')
if(cookie === undefined){
      axios.get('path/to/my/cookie/api').then(response => {
        if(response.status == 200){
          cookieClient.save('cookie-name', response.data, {path:'/'})
        }
      })
    }
...
Run Code Online (Sandbox Code Playgroud)

虽然它也使用Axios,但它与问题无关.一旦设置了cookie,我只想在我的所有请求中嵌入cookie.

javascript cookies node.js express axios

86
推荐指数
11
解决办法
10万
查看次数

Ajax使用Axios从表单发布文件

当我使用以下内容将文件发布到烧瓶服务器时使用原始.html我可以访问烧瓶请求全局中的文件:

<form id="uploadForm" action='upload_file' role="form" method="post" enctype=multipart/form-data>
    <input type="file" id="file" name="file">
    <input type=submit value=Upload>
</form>
Run Code Online (Sandbox Code Playgroud)

在烧瓶中:

def post(self):
    if 'file' in request.files:
        ....
Run Code Online (Sandbox Code Playgroud)

当我尝试对Axios执行相同操作时,求助栏请求全局为空:

<form id="uploadForm" enctype="multipart/form-data" v-on:change="uploadFile">
<input type="file" id="file" name="file">
</form>

uploadFile: function (event) {
    const file = event.target.files[0]
    axios.post('upload_file', file, {
        headers: {
          'Content-Type': 'multipart/form-data'
        }
    })
}
Run Code Online (Sandbox Code Playgroud)

如果我使用上面的相同uploadFile函数但是从axios.post方法中删除了头json,我在我的flask请求对象的表单键中获得了一个字符串值的csv列表(文件是.csv).如何获取通过axios发送的文件对象?

javascript ajax file-upload axios

85
推荐指数
6
解决办法
12万
查看次数

使用axios POST请求传递标头[ReactJS]

我已经按照npm包文档中的建议编写了一个axios POST请求

var data = {
    'key1': 'val1',
    'key2': 'val2'
}
axios.post(Helper.getUserAPI(), data)       
.then((response) => {
    dispatch({type: FOUND_USER, data: response.data[0]})
})
.catch((error) => {
    dispatch({type: ERROR_FINDING_USER})
})
Run Code Online (Sandbox Code Playgroud)

它工作正常,但现在我修改了我的后端API以接受Headers

内容类型:'application/json'

授权:'JWT fefege ......'

现在这个请求在POSTMAN上工作正常,但是在写一个axios调用时,我遵循这个链接并且不能让它工作.

我正在得到 400 BAD Request

这是我修改过的请求

axios.post(Helper.getUserAPI(), {
    headers: {
        'Content-Type': 'application/json',
        'Authorization': 'JWT fefege...'
    },
    data
})      
.then((response) => {
    dispatch({type: FOUND_USER, data: response.data[0]})
})
.catch((error) => {
    dispatch({type: ERROR_FINDING_USER})
})
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏

提前致谢.

json content-type http-post http-headers axios

83
推荐指数
6
解决办法
13万
查看次数