iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >react如何发送axios请求
  • 427
分享到

react如何发送axios请求

2023-07-04 21:07:17 427人浏览 泡泡鱼
摘要

这篇文章主要介绍了React如何发送axiOS请求的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇react如何发送axios请求文章都会有所收获,下面我们一起来看看吧。react发送axios请求的方法:1、通

这篇文章主要介绍了React如何发送axiOS请求的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇react如何发送axios请求文章都会有所收获,下面我们一起来看看吧。

react发送axios请求的方法:1、通过“npm install axios --save”命令安装axios;2、在react文件中使用typescript方式导入axios依赖;3、使用“axios.get”或者“axios(config { ... })”的方式进行GET请求即可。

React中使用axios发送请求的常用方法

React中安装并引入axios依赖

在React项目中使用axios请求,首先需要安装axios:

npm install axios --save

然后在react文件中使用typescript方式导入axios依赖:

import axios from 'axios';

使用axios进行GET请求

axios中使用GET请求时有两中方式:

  • 一种是使用axios.get的方式进行

  • 一种是使用axios(config { ... })的方式进行

使用axios.get方式

使用封装的axios.get进行请求的常用格式如下:

// Make a request for a user with a given IDaxios.get('/getUser?id=12345')  .then(function (response) {    // handle success    console.log(response);     // update state or do something    this.setState({      // ...    })  })  .catch(function (error) {    // handle error    console.log(error);  })  .then(function () {    // always executed  }); // Optionally the request above could also be done asaxios.get('/getUser', {    params: { // 这里的参数设置为URL参数(根据URL携带参数)      id: 12345    }  })  .then(function (response) {    console.log(response);  })  .catch(function (error) {    console.log(error);  })  .then(function () {    // always executed  });   // Want to use async/await? Add the `async` keyWord to your outer function/method.async function getUser() {  try {    const response = await axios.get('/getUser?id=12345');    console.log(response);  } catch (error) {    console.error(error);  }}

使用axios(config {...})

使用axios(config {...}) 的方式发送GET请求格式如下:

axios({  method: 'get',  url: '/getUser',  params: {    id: 12345,  }})  .then(function (response) {    console.log(response);  });

以上的get请求发送的URL均为如下:

Http:HOST_IP:XXXX/getUser?id=12345

使用axios进行POST请求

同GET请求一样,使用POST也有两种请求方式。

使用axios.post

axios.post('/createUser', {    firstName: 'Fred',    lastName: 'Flintstone'  })  .then(function (response) {    console.log(response);  })  .catch(function (error) {    console.log(error);  });

使用axios(config {...})

    // Send a POST request    axios({      method: 'post',      url: '/createUser',      data: { // 这里data中的参数为requestBody参数,服务端需要使用@RequestBody注解进行获取        firstName: 'Fred',        lastName: 'Flintstone'      }    }).then(function (response) {      console.log(response);    }).catch(function (error) {      console.log(error);    });

需要注意的是,在使用axios(config {})方式进行GET或POST请求发送时,GET请求中params为URL参数,POST请求中data为RequestBody参数,在服务端需要使用@RequestBody注解接收,Spring Boot能够自动解析为Java相应的对象。

同时发送多个请求

使用axios也可以一次发送多个请求:

function getUserAccount() {  return axios.get('/user/12345');} function getUserPermissions() {  return axios.get('/user/12345/permissions');} axios.all([getUserAccount(), getUserPermissions()])  .then(axios.spread(function (acct, perms) {    // Both requests are now complete  }));

详细config对象配置项

在axios的readme文档中,有对config对象的具体配置说明,如下:

{  // `url` is the server URL that will be used for the request  url: '/user',   // `method` is the request method to be used when making the request  method: 'get', // default   // `baseURL` will be prepended to `url` unless `url` is absolute.  // It can be convenient to set `baseURL` for an instance of axios to pass relative URLs  // to methods of that instance.  baseURL: 'https://some-domain.com/api/',   // `transfORMRequest` allows changes to the request data before it is sent to the server  // This is only applicable for request methods 'PUT', 'POST', 'PATCH' and 'DELETE'  // The last function in the array must return a string or an instance of Buffer, ArrayBuffer,  // FormData or Stream  // You may modify the headers object.  transformRequest: [function (data, headers) {    // Do whatever you want to transform the data     return data;  }],   // `transformResponse` allows changes to the response data to be made before  // it is passed to then/catch  transformResponse: [function (data) {    // Do whatever you want to transform the data     return data;  }],   // `headers` are custom headers to be sent  headers: {'X-Requested-With': 'XMLHttpRequest'},   // `params` are the URL parameters to be sent with the request  // Must be a plain object or a URLSearchParams object  params: {    ID: 12345  },   // `paramsSerializer` is an optional function in charge of serializing `params`  // (e.g. https://www.npmjs.com/package/qs, http://api.Jquery.com/jquery.param/)  paramsSerializer: function (params) {    return Qs.stringify(params, {arrayFormat: 'brackets'})  },   // `data` is the data to be sent as the request body  // Only applicable for request methods 'PUT', 'POST', and 'PATCH'  // When no `transformRequest` is set, must be of one of the following types:  // - string, plain object, ArrayBuffer, ArrayBufferView, URLSearchParams  // - Browser only: FormData, File, Blob  // - node only: Stream, Buffer  data: {    firstName: 'Fred'  },    // syntax alternative to send data into the body  // method post  // only the value is sent, not the key  data: 'Country=Brasil&City=Belo Horizonte',   // `timeout` specifies the number of milliseconds before the request times out.  // If the request takes longer than `timeout`, the request will be aborted.  timeout: 1000, // default is `0` (no timeout)   // `withCredentials` indicates whether or not cross-site Access-Control requests  // should be made using credentials  withCredentials: false, // default   // `adapter` allows custom handling of requests which makes testing easier.  // Return a promise and supply a valid response (see lib/adapters/README.md).  adapter: function (config) {      },   // `auth` indicates that HTTP Basic auth should be used, and supplies credentials.  // This will set an `Authorization` header, overwriting any existing  // `Authorization` custom headers you have set using `headers`.  // Please note that only HTTP Basic auth is configurable through this parameter.  // For Bearer tokens and such, use `Authorization` custom headers instead.  auth: {    username: 'janedoe',    password: 's00pers3cret'  },   // `responseType` indicates the type of data that the server will respond with  // options are: 'arraybuffer', 'document', 'JSON', 'text', 'stream'  //   browser only: 'blob'  responseType: 'json', // default   // `responseEncoding` indicates encoding to use for decoding responses  // Note: Ignored for `responseType` of 'stream' or client-side requests  responseEncoding: 'utf8', // default   // `xsrfCookieName` is the name of the cookie to use as a value for xsrf token  xsrfCookieName: 'XSRF-TOKEN', // default   // `xsrfHeaderName` is the name of the http header that carries the xsrf token value  xsrfHeaderName: 'X-XSRF-TOKEN', // default   // `onUploadProgress` allows handling of progress events for uploads  // browser only  onUploadProgress: function (progressEvent) {    // Do whatever you want with the native progress event  },   // `onDownloadProgress` allows handling of progress events for downloads  // browser only  onDownloadProgress: function (progressEvent) {    // Do whatever you want with the native progress event  },   // `maxContentLength` defines the max size of the http response content in bytes allowed  maxContentLength: 2000,   // `validateStatus` defines whether to resolve or reject the promise for a given  // HTTP response status code. If `validateStatus` returns `true` (or is set to `null`  // or `undefined`), the promise will be resolved; otherwise, the promise will be  // rejected.  validateStatus: function (status) {    return status >= 200 && status < 300; // default  },   // `maxRedirects` defines the maximum number of redirects to follow in node.js.  // If set to 0, no redirects will be followed.  maxRedirects: 5, // default   // `SocketPath` defines a UNIX Socket to be used in node.js.  // e.g. '/var/run/Docker.sock' to send requests to the docker daemon.  // Only either `socketPath` or `proxy` can be specified.  // If both are specified, `socketPath` is used.  socketPath: null, // default   // `httpAgent` and `httpsAgent` define a custom agent to be used when performing http  // and https requests, respectively, in node.js. This allows options to be added like  // `keepAlive` that are not enabled by default.  httpAgent: new http.Agent({ keepAlive: true }),  httpsAgent: new https.Agent({ keepAlive: true }),   // `proxy` defines the hostname and port of the proxy server.  // You can also define your proxy using the conventional `http_proxy` and  // `https_proxy` environment variables. If you are using environment variables  // for your proxy configuration, you can also define a `no_proxy` environment  // variable as a comma-separated list of domains that should not be proxied.  // Use `false` to disable proxies, ignoring environment variables.  // `auth` indicates that HTTP Basic auth should be used to connect to the proxy, and  // supplies credentials.  // This will set an `Proxy-Authorization` header, overwriting any existing  // `Proxy-Authorization` custom headers you have set using `headers`.  proxy: {    host: '127.0.0.1',    port: 9000,    auth: {      username: 'mikeymike',      password: 'rapunz3l'    }  },   // `cancelToken` specifies a cancel token that can be used to cancel the request  // (see Cancellation section below for details)  cancelToken: new CancelToken(function (cancel) {  })}

axios的返回值对象response

axios在进行请求后得到的response对象格式如下:

{  // `data` is the response that was provided by the server  data: {},   // `status` is the HTTP status code from the server response  status: 200,   // `statusText` is the HTTP status message from the server response  statusText: 'OK',   // `headers` the HTTP headers that the server responded with  // All header names are lower cased and can be accessed using the bracket notation.  // Example: `response.headers['content-type']`  headers: {},   // `config` is the config that was provided to `axios` for the request  config: {},   // `request` is the request that generated this response  // It is the last ClientRequest instance in node.js (in redirects)  // and an XMLHttpRequest instance in the browser  request: {}}

当在请求后使用then方法时,可以获取response对象的各个属性值,其中data即为服务端返回的相应对象:

axios.get('/user/12345')  .then(function (response) {    console.log(response.data);    console.log(response.status);    console.log(response.statusText);    console.log(response.headers);    console.log(response.config);  });

axios的全局配置

在使用axios时,可以对axios对象进行全局的设置,该设置会应用于axios所在当前javascript类中的所有axios请求中,例如如下的设置:

axios.defaults.baseURL = 'https://api.example.com';axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';

axios的单一实例化配置

如果不需对axios进行全局设置,则可以在使用某个axios对象时,进行单一对象的设置,例如如下:

// Set config defaults when creating the instanceconst instance = axios.create({  baseURL: 'https://api.example.com'}); // Alter defaults after instance has been createdinstance.defaults.headers.common['Authorization'] = AUTH_TOKEN;

axios拦截器的使用

可以使用axios拦截器来在发送请求之前或在响应response之前(then方法)来拦截请求并进行自定义的设置,定义request和response拦截器示例如下:

// Add a request interceptoraxios.interceptors.request.use(function (config) {    // Do something before request is sent    return config;  }, function (error) {    // Do something with request error    return Promise.reject(error);  }); // Add a response interceptoraxios.interceptors.response.use(function (response) {    // Any status code that lie within the range of 2xx cause this function to trigger    // Do something with response data    return response;  }, function (error) {    // Any status codes that falls outside the range of 2xx cause this function to trigger    // Do something with response error    return Promise.reject(error);  });

当需要删除拦截器时,进行如下操作:

const myInterceptor = axios.interceptors.request.use(function () {});axios.interceptors.request.eject(myInterceptor);

也可以将定义的拦截器添加到自定义的axios实例中:

const instance = axios.create();instance.interceptors.request.use(function () {});

关于“react如何发送axios请求”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“react如何发送axios请求”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: react如何发送axios请求

本文链接: https://www.lsjlt.com/news/347635.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • react如何发送axios请求
    这篇文章主要介绍了react如何发送axios请求的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇react如何发送axios请求文章都会有所收获,下面我们一起来看看吧。react发送axios请求的方法:1、通...
    99+
    2023-07-04
  • react怎么发送axios请求
    本教程操作环境:Windows10系统、react18.0.0版、Dell G3电脑。react怎么发送axios请求?React中使用axios发送请求的常用方法React中安装并引入axios依赖在React项目中使用axios请求,首...
    99+
    2023-05-14
    React
  • React中如何使用axios发送请求
    小编给大家分享一下React中如何使用axios发送请求,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!React中安装并引入axios依赖在React项目中使用a...
    99+
    2023-06-20
  • React中使用axios发送请求的几种常用方法
    目录React中安装并引入axios依赖 使用axios进行GET请求 使用axios.get方式 使用axios(config {...}) 使用axios进行POST请求 使用a...
    99+
    2024-04-02
  • Vue怎么使用axios发送请求
    本文小编为大家详细介绍“Vue怎么使用axios发送请求”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue怎么使用axios发送请求”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。例:当我们在APP组件的子组件...
    99+
    2023-07-05
  • react axios请求拦截如何实现
    这篇“react axios请求拦截如何实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“react axios请求拦截如何...
    99+
    2023-07-04
  • Vue项目如何创建首页发送axios请求
    这篇文章主要介绍了Vue项目如何创建首页发送axios请求的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue项目如何创建首页发送axios请求文章都会有所收获,下面我们一起来看看吧。这是个全新的Vue项目,引...
    99+
    2023-07-05
  • vue怎么使用axios发送ajax请求
    在vue中使用axios发送ajax请求的方法:1.新建vue.js项目;2.使用npm命令下载axios;3.使用import方法导入axios;4.执行代码发送ajax请求;具体步骤如下:首先,在vue-cli中创建一个vue.js项目...
    99+
    2024-04-02
  • 如何解决axios会发送两次请求有个OPTIONS请求的问题
    这篇文章主要为大家展示了“如何解决axios会发送两次请求有个OPTIONS请求的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决axios会发送两次...
    99+
    2024-04-02
  • 如何让axios发送表单请求形式的键值
    这篇文章主要介绍了如何让axios发送表单请求形式的键值,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。代码npm install&...
    99+
    2024-04-02
  • vue cli3 项目中如何使用axios发送post请求
    目录使用axios发送post请求首先需要安装对应的第三方包发送post请求 发送get请求将index.js中再添加如下代码vue使用axios的踩坑记录axios跨域解...
    99+
    2024-04-02
  • axios请求二次封装之避免重复发送请求
    目录前言目的文件结构实现请求拦截响应拦截取消重复发送请求调用总结前言 Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。 axios 是...
    99+
    2024-04-02
  • Vue中怎么使用axios发送post请求
    Vue中怎么使用axios发送post请求,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。vue-resource不再维护之后,我也用起了a...
    99+
    2024-04-02
  • Vue axios库发送请求的示例介绍
    目录1.什么是axios2.axios请求图例3.使用 async 和 await 配合 axios 发起请求4.使用解构赋值5.使用 axios.get() axios.post(...
    99+
    2022-11-13
    Vue axios发送请求 Vue axios请求
  • vue项目中如何使用axios发送请求让ajax请求头部携带cookie
    这篇文章主要为大家展示了“vue项目中如何使用axios发送请求让ajax请求头部携带cookie”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue项目中如何...
    99+
    2024-04-02
  • jquery如何发送post请求
    本篇内容主要讲解“jquery如何发送post请求”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“jquery如何发送post请求”吧! ...
    99+
    2024-04-02
  • Vue通过axios发送ajax请求基础演示
    在Vue中是不支持发送ajax请求的,如果我们要在Vue中发送ajax请求,我们需借助第三方插件常用发送ajax请求插件有两个 vue-resource和axios,Vue.js 2...
    99+
    2023-02-18
    Vue通过axios发送ajax请求 简单的axios发送get请求 axios通过get传参 简单的axios发送post请求 axios通过params参数
  • React Native如何使用axios进行网络请求
    本篇内容主要讲解“React Native如何使用axios进行网络请求”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“React Native如何使用axios进行网络请求”吧!在前端开发中,能...
    99+
    2023-06-20
  • React Native如何采用Fetch方式发送跨域POST请求
    这篇文章主要为大家展示了“React Native如何采用Fetch方式发送跨域POST请求”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“React Nativ...
    99+
    2024-04-02
  • 使用axios发送post请求返回400状态码如何解决
    使用axios发送post请求返回400状态码如何解决,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。前台代码如下:axios(...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作