搜索
您的当前位置:首页正文

使用axios如何实现ajax请求(详细教程)

2023-11-29 来源:环绕娱乐网

之前给大家介绍了jQuery利用最优雅的方式写ajax请求的相关内容,这篇文章主要给大家介绍了关于axios进阶实践之利用最优雅的方式写ajax请求的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。

前言

ajax相信不用过多介绍了,作者坚信可以用配置解决的问题,请勿硬编码,下面话不多说了,来一看看详细的介绍吧。

姊妹篇 jQuery进阶:用最优雅的方式写ajax请求

axios是Vue官方推荐的ajax库, 用来取代vue-resource。更多详细的基础知识可以参考这篇文章://www.gxlcms.com/article/109444.htm

优点:

  • 增加一个ajax接口,只需要在配置文件里多写几行就可以

  • 不需要在组件中写axios调用,直接调用api方法,很方便

  • 如果接口有调整,只需要修改一下接口配置文件就可以

  • 统一管理接口配置

  • 1. content-type配置

    // filename: content-type.jsmodule.exports = { formData: 'application/x-www-form-urlencoded; charset=UTF-8', json: 'application/json; charset=UTF-8'}

    2. api 配置

    // filename: api-sdk-conf.jsimport contentType from './content-type'export default { baseURL: 'http://192.168.40.231:30412', apis: [ { name: 'login', path: '/api/security/login?{{id}}', method: 'post', contentType: contentType.formData, status: { 401: '用户名或者密码错误' } } ]}

    3. request.js 方法

    // request.jsimport axios from 'axios'import qs from 'qs'import contentType from '@/config/content-type'import apiConf from '@/config/api-sdk-conf'var api = {}// render 函数用来渲染路径上的变量, 算是一个微型的模板渲染工具// 例如render('/{{userId}}/{{type}}/{{query}}', {userId:1,type:2, query:3})// 会被渲染成 /1/2/3function render (tpl, data) { var re = /{{([^}]+)?}}/ var match = '' while ((match = re.exec(tpl))) { tpl = tpl.replace(match[0], data[match[1]]) } return tpl}// fire中的this, 会动态绑定到每个接口上function fire (query = {}, payload = '') { // qs 特别处理 formData类型的数据 if (this.contentType === contentType.formData) { payload = qs.stringify(payload) } // 直接返回axios实例,方便调用then,或者catch方法 return axios({ method: this.method, url: render(this.url, query), data: payload, headers: { contentType: this.contentType } })}apiConf.apis.forEach((item) => { api[item.name] = { url: apiConf.baseURL + item.path, method: item.method, status: item.status, contentType: item.contentType, fire: fire }})export default api

    4. 在组件中使用

    import api from '@/apis/request'... api.login.fire({id: '?heiheihei'}, { username: 'admin', password: 'admin', namespace: '_system' })...

    浏览器结果:

    Request URL:http://192.168.40.231:30412/api/security/login??heiheiheiRequest Method:POSTStatus Code:200 OKRemote Address:192.168.40.231:30412Referrer Policy:no-referrer-when-downgradePOST /api/security/login??heiheihei HTTP/1.1Host: 192.168.40.231:30412Connection: keep-aliveContent-Length: 47Accept: application/json, text/plain, */*Origin: http://localhost:8080contentType: application/x-www-form-urlencoded; charset=UTF-8User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36Content-Type: application/x-www-form-urlencodedReferer: http://localhost:8080/Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9,en;q=0.8username=admin&password=admin&namespace=_system

    5. 更多

    有个地方我不是很明白,希望懂的人可以给我解答一下

    如果某个组件中只需要login方法,但是我这样写会报错。

    import {login} from '@/apis/request'

    这样写的前提是要在request.js最后写上

    export var login = api.login

    但是这是我不想要的,因为每次增加一个接口,这里都要export一次, 这不符合开放闭合原则,请问有什么更好的方法吗?

    上面是我整理给大家的,希望今后会对大家有帮助。

    相关文章:

    使用nodejs如何实现gulp打包

    详细解读Angular5.1新功能

    如何使用vuex实现菜单管理

    小编还为您整理了以下内容,可能对您也有帮助:

    如何在React中做Ajax 请求

    首先:React本身没有独有的获取数据的方式。实际上,就React而言,它甚至不知道有服务器画面的存在。

    React只是简单地渲染组件,单独从两个地方获取数据:props 和 state。

    因此,为了使用服务器的数据,你需要在你的组件(component)的props或state里拿到数据。

    你可以将这个过程与服务和数据模型复杂化,就像你所希望的那样,但最终只是组件渲染props和state。

    选择一个HTTP 库

    为了获取来自服务器的数据,你需要一个HTTP库,网上有很多,最终他们都做同样的事情,但他们有不同的特点。

    喜欢 Promise?那就选axios吧:mzabriskie...

    讨厌Promise?,但是喜欢callback?不妨看看superagent

    当然,你也可以选择自己封装一个ajax库,我喜欢Axios,下面将以这个库作为例子,如果你不喜欢,可以选择其他库看看。

    Fetch Data

    如下是一个简单的实例,一个组件从subreddit获取职位。看看这个例子,我们将会了解它是如何工作的

    import React from 'react';

    import ReactDOM from 'react-dom';

    import axios from 'axios';

    class FetchDemo extends React.Component {

    constructor(props) {

    super(props);

    this.state = {

    posts: []

    };

    }

    componentDidMount() {

    axios.get(`r/${this.props.subreddit}.json`)

    .then(res => {

    const posts = res.data.data.children.map(obj => obj.data);

    this.setState({ posts });

    });

    }

    render() {

    return (

    <div>

    <h1>{`/r/${this.props.subreddit}`}</h1>

    <ul>

    {this.state.posts.map(post =>

    <li key={post.id}>{post.title}</li>

    )}

    </ul>

    </div>

    );

    }

    }

    ReactDOM.render(

    <FetchDemo subreddit="reactjs"/>,

    document.getElementById('root')

    );

    它是如何工作的?

    首先,我们将axios 库import进来。

    然后在constructor 里先调用super,接着初始化state,让它拥有一个posts空数组。

    componentDidMount是关键所在,这个方法将会在组件插入DOM的第一时间执行。该方法在整个组件的生命周期只会执行一次。

    它使用axios.get方法从subreddit获取数据,反引号的字符串是ES6的模板字符串,${}部分是由表达式的值所取代,所以URL传递给axios.get实际上是r/react...。

    有两点你需要注意的是:

    你可以在任意的subreddit URL末尾处附加上.json并且获得那个职位的json形式的展示

    如果你忘记www,你会得到一个CORS错误

    因为Axios使用Promise,所有我们可以链式调用then方法来处理response。获取的职位信息是一点一点的转换后提取的,最重要的一点是,组件的状态(state)是由职位与新数组调用this.setState更新的,由此触发一个重新渲染,然后职位的信息就可以看见了

    在vue组件中使用axios的方法

    现在我们通过webpack+vue-cli搭建起了一个vue项目的框架,如果我们需要在vue组件中使用axios向后台获取数据应该怎么办呢?
    通常情况下,我们搭建好的项目目录应该是这样子的
    首先需要安装axios,这个会npm的都知道
    下一步,在main.js中引入axios
    import
    axios
    from
    "axios";
    与很多第三方模块不同的是,axios不能使用use方法,转而应该进行如下操作
    Vue.prototype.$axios
    =
    axios;
    接着,我们就可以在App.vue中使用axios了
    created:function(){
    this.$axios.get("/seller",{"id":123}).then(res=>{
    console.log(res.data);
    });
    }
    以上这篇在vue组件中使用axios的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
    您可能感兴趣的文章:在Vue组件化中利用axios处理ajax请求的使用方法详解axios在vue中的简单配置与使用详解Vue.js
    2.0
    如何使用axiosVue.js实战之使用Vuex
    +
    axios发送请求详解vue-axios使用详解

    在vue组件中使用axios的方法

    现在我们通过webpack+vue-cli搭建起了一个vue项目的框架,如果我们需要在vue组件中使用axios向后台获取数据应该怎么办呢?
    通常情况下,我们搭建好的项目目录应该是这样子的
    首先需要安装axios,这个会npm的都知道
    下一步,在main.js中引入axios
    import
    axios
    from
    "axios";
    与很多第三方模块不同的是,axios不能使用use方法,转而应该进行如下操作
    Vue.prototype.$axios
    =
    axios;
    接着,我们就可以在App.vue中使用axios了
    created:function(){
    this.$axios.get("/seller",{"id":123}).then(res=>{
    console.log(res.data);
    });
    }
    以上这篇在vue组件中使用axios的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
    您可能感兴趣的文章:在Vue组件化中利用axios处理ajax请求的使用方法详解axios在vue中的简单配置与使用详解Vue.js
    2.0
    如何使用axiosVue.js实战之使用Vuex
    +
    axios发送请求详解vue-axios使用详解

    前端如何通过ajax请求访问共享盘文件

    前端可以通过ajax请求访问共享盘文件,但需要注意以下几点:

    1. 由于涉及到跨域问题,需要在服务器端设置CORS(跨源资源共享)策略,以便前端可以访问共享盘文件。

    2. 前端需要通过ajax请求获取共享盘文件的URL或者路径,然后通过该URL或者路径访问共享盘文件。

    3. 由于共享盘文件可能包含敏感信息,需要对访问共享盘文件的权限进行验证和控制,以确保安全性。

    以下是一份示例代码,仅供参考:

    ```
    $.ajax({
    url: 'http://example.com/file/path',
    type: 'GET',
    dataType: 'json',
    success: function(data) {
    // 处理获取到的共享盘文件数据
    },
    error: function(xhr, status, error) {
    // 处理请求失败的情况
    },
    xhrFields: {
    withCredentials: true // 设置允许携带cookie信息
    }
    });
    ```

    需要注意的是,上述代码仅仅是一份示例,具体实现方式需要根据具体的需求和环境来确定。

    前端如何通过ajax请求访问共享盘文件

    前端可以通过ajax请求访问共享盘文件,但需要注意以下几点:

    1. 由于涉及到跨域问题,需要在服务器端设置CORS(跨源资源共享)策略,以便前端可以访问共享盘文件。

    2. 前端需要通过ajax请求获取共享盘文件的URL或者路径,然后通过该URL或者路径访问共享盘文件。

    3. 由于共享盘文件可能包含敏感信息,需要对访问共享盘文件的权限进行验证和控制,以确保安全性。

    以下是一份示例代码,仅供参考:

    ```
    $.ajax({
    url: 'http://example.com/file/path',
    type: 'GET',
    dataType: 'json',
    success: function(data) {
    // 处理获取到的共享盘文件数据
    },
    error: function(xhr, status, error) {
    // 处理请求失败的情况
    },
    xhrFields: {
    withCredentials: true // 设置允许携带cookie信息
    }
    });
    ```

    需要注意的是,上述代码仅仅是一份示例,具体实现方式需要根据具体的需求和环境来确定。

    vue中Axios的封装与API接口的管理详解?

    首先,在自己建的公用方法的文件中new一个新的/跳转登录页面,并将要浏览的页面fullPath传过去,登录成功后跳转需要访问的页面setTimeout(()=>{router.replace({path:'/login',query:{redirect:router.currentRoute.fullPath}});},1000);break;//404请求不存在case404:Toast({message:'网络请求不存在',ration:1500,forbidClick:true});break;//其他错误,直接抛出错误提示default:Toast({message:error.response.data.message,ration:1500,forbidClick:true});}returnPromise.reject(error.response);}}});

    响应*很好理解,就是服务器返回给我们的数据,我们在拿到之前可以对他进行一些处理。例如上面的思想:如果后台返回的状态码是200,则正常返回数据,否则的根据错误的状态码类型进行一些我们需要的错误,其实这里主要就是进行了错误的统一处理和没登录或登录过期后调整登录页的一个操作。

    要注意的是,上面的Toast()方法,是我引入的vant库中的toast轻提示组件,你根据你的ui库,对应使用你的一个提示组件。

    封装get方法和post方法

    我们常用的ajax请求方法有get、post、put等方法,相信小伙伴都不会陌生。axios对应的也有很多类似的方法,不清楚的可以看下文档。但是为了简化我们的代码,我们还是要对其进行一个简单的封装。下面我们主要封装两个方法:get和post。

    get方法:我们通过定义一个get函数,get函数有两个参数,第一个参数表示我们要请求的url地址,第二个参数是我们要携带的请求参数。get函数返回一个promise对象,当axios其请求成功时resolve服务器返回值,请求失败时reject错误值。最后通过export抛出get函数。

    /***get方法,对应get请求*@param{String}url[请求的url地址]*@param{Object}params[请求时携带的参数]*/exportfunctionget(url,params){returnnewPromise((resolve,reject)=>{axios.get(url,{params:params}).then(res=>{resolve(res.data);}).catch(err=>{reject(err.data)})});}

    post方法:原理同get基本一样,但是要注意的是,post方法必须要使用对提交从参数对象进行序列化的操作,所以这里我们通过node的qs模块来序列化我们的参数。这个很重要,如果没有序列化操作,后台是拿不到你提交的数据的。这就是文章开头我们importQSfrom'qs';的原因。如果不明白序列化是什么意思的,就百度一下吧,答案一大堆。

    /***post方法,对应post请求*@param{String}url[请求的url地址]*@param{Object}params[请求时携带的参数]*/exportfunctionpost(url,params){returnnewPromise((resolve,reject)=>{axios.post(url,QS.stringify(params)).then(res=>{resolve(res.data);}).catch(err=>{reject(err.data)})});}

    这里有个小细节说下,axios.get()方法和axios.post()在提交数据时参数的书写方式还是有区别的。区别就是,get的第二个参数是一个{},然后这个对象的params属性值是一个参数对象的。而post的第二个参数就是一个参数对象。两者略微的区别要留意哦!

    axios的封装基本就完成了,下面再简单说下api的统一管理。

    整齐的api就像电路板一样,即使再复杂也能很清晰整个线路。上面说了,我们会新建一个api.js,然后在这个文件中存放我们所有的api接口。

    首先我们在api.js中引入我们封装的get和post方法

    /***api接口统一管理*/import{get,post}from'.//获取数据onLoad(){//调用api接口,并且提供了两个参数apiAddress({type:0,sort:1}).then(res=>{//获取数据成功后的其他操作})}}}

    其他的api接口,就在pai.js中继续往下面扩展就可以了。友情提示,为每个接口写好注释哦!!!api接口管理的一个好处就是,我们把api统一集中起来,如果后期需要修改接口,我们就直接在api.js中找到对应的修改就好了,而不用去每一个页面查找我们的接口然后再修改会很麻烦。关键是,万一修改的量比较大,就规格gg了。还有就是如果直接在我们的业务代码修改接口,一不小心还容易动到我们的业务代码造成不必要的麻烦。

    好了,最后把完成的axios封装代码奉上。

    /**axios封装*请求拦截、相应拦截、错误统一处理*/importaxiosfrom'axios';importQSfrom'qs';import{Toast}from'vant';importstorefrom'../store/index'//环境的切换if(process.env.NODE_ENV=='development'){axios.defaults.baseURL='/api';}elseif(process.env.NODE_ENV=='debug'){axios.defaults.baseURL='';}elseif(process.env.NODE_ENV=='proction'){axios.defaults.baseURL='/';}//请求超时时间axios.defaults.timeout=10000;//post请求头axios.defaults.headers.post['Content-Type']='application/x-www-form-urlencoded;charset=UTF-8';//请求*axios.interceptors.request.use(config=>{//每次发送请求之前判断是否存在token,如果存在,则统一在/响应*axios.interceptors.response.use(response=>{if(response.status===200){returnPromise.resolve(response);}else{returnPromise.reject(response);}},//服务器状态码不是200的情况error=>{if(error.response.status){switch(error.response.status){//401:未登录//未登录则跳转登录页面,并携带当前页面的路径//在登录成功后返回当前页面,这一步需要在登录页操作。case401:router.replace({path:'/login',query:{redirect:router.currentRoute.fullPath}});break;//403token过期//登录过期对用户进行提示//清除本地token和清空vuex中token对象//跳转登录页面case403:Toast({message:'登录过期,请重新登录',ration:1000,forbidClick:true});//清除tokenlocalStorage.removeItem('token');store.commit('loginSuccess',null);//跳转登录页面,并将要浏览的页面fullPath传过去,登录成功后跳转需要访问的页面setTimeout(()=>{router.replace({path:'/login',query:{redirect:router.currentRoute.fullPath}});},1000);break;//404请求不存在case404:Toast({message:'网络请求不存在',ration:1500,forbidClick:true});break;//其他错误,直接抛出错误提示default:Toast({message:error.response.data.message,ration:1500,forbidClick:true});}returnPromise.reject(error.response);}});/***get方法,对应get请求*@param{String}url[请求的url地址]*@param{Object}params[请求时携带的参数]*/exportfunctionget(url,params){returnnewPromise((resolve,reject)=>{axios.get(url,{params:params}).then(res=>{resolve(res.data);}).catch(err=>{reject(err.data)})});}/***post方法,对应post请求*@param{String}url[请求的url地址]*@param{Object}params[请求时携带的参数]*/exportfunctionpost(url,params){returnnewPromise((resolve,reject)=>{axios.post(url,QS.stringify(params)).then(res=>{resolve(res.data);}).catch(err=>{reject(err.data)})});}

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流。

    vue中Axios的封装与API接口的管理详解?

    首先,在自己建的公用方法的文件中new一个新的/跳转登录页面,并将要浏览的页面fullPath传过去,登录成功后跳转需要访问的页面setTimeout(()=>{router.replace({path:'/login',query:{redirect:router.currentRoute.fullPath}});},1000);break;//404请求不存在case404:Toast({message:'网络请求不存在',ration:1500,forbidClick:true});break;//其他错误,直接抛出错误提示default:Toast({message:error.response.data.message,ration:1500,forbidClick:true});}returnPromise.reject(error.response);}}});

    响应*很好理解,就是服务器返回给我们的数据,我们在拿到之前可以对他进行一些处理。例如上面的思想:如果后台返回的状态码是200,则正常返回数据,否则的根据错误的状态码类型进行一些我们需要的错误,其实这里主要就是进行了错误的统一处理和没登录或登录过期后调整登录页的一个操作。

    要注意的是,上面的Toast()方法,是我引入的vant库中的toast轻提示组件,你根据你的ui库,对应使用你的一个提示组件。

    封装get方法和post方法

    我们常用的ajax请求方法有get、post、put等方法,相信小伙伴都不会陌生。axios对应的也有很多类似的方法,不清楚的可以看下文档。但是为了简化我们的代码,我们还是要对其进行一个简单的封装。下面我们主要封装两个方法:get和post。

    get方法:我们通过定义一个get函数,get函数有两个参数,第一个参数表示我们要请求的url地址,第二个参数是我们要携带的请求参数。get函数返回一个promise对象,当axios其请求成功时resolve服务器返回值,请求失败时reject错误值。最后通过export抛出get函数。

    /***get方法,对应get请求*@param{String}url[请求的url地址]*@param{Object}params[请求时携带的参数]*/exportfunctionget(url,params){returnnewPromise((resolve,reject)=>{axios.get(url,{params:params}).then(res=>{resolve(res.data);}).catch(err=>{reject(err.data)})});}

    post方法:原理同get基本一样,但是要注意的是,post方法必须要使用对提交从参数对象进行序列化的操作,所以这里我们通过node的qs模块来序列化我们的参数。这个很重要,如果没有序列化操作,后台是拿不到你提交的数据的。这就是文章开头我们importQSfrom'qs';的原因。如果不明白序列化是什么意思的,就百度一下吧,答案一大堆。

    /***post方法,对应post请求*@param{String}url[请求的url地址]*@param{Object}params[请求时携带的参数]*/exportfunctionpost(url,params){returnnewPromise((resolve,reject)=>{axios.post(url,QS.stringify(params)).then(res=>{resolve(res.data);}).catch(err=>{reject(err.data)})});}

    这里有个小细节说下,axios.get()方法和axios.post()在提交数据时参数的书写方式还是有区别的。区别就是,get的第二个参数是一个{},然后这个对象的params属性值是一个参数对象的。而post的第二个参数就是一个参数对象。两者略微的区别要留意哦!

    axios的封装基本就完成了,下面再简单说下api的统一管理。

    整齐的api就像电路板一样,即使再复杂也能很清晰整个线路。上面说了,我们会新建一个api.js,然后在这个文件中存放我们所有的api接口。

    首先我们在api.js中引入我们封装的get和post方法

    /***api接口统一管理*/import{get,post}from'.//获取数据onLoad(){//调用api接口,并且提供了两个参数apiAddress({type:0,sort:1}).then(res=>{//获取数据成功后的其他操作})}}}

    其他的api接口,就在pai.js中继续往下面扩展就可以了。友情提示,为每个接口写好注释哦!!!api接口管理的一个好处就是,我们把api统一集中起来,如果后期需要修改接口,我们就直接在api.js中找到对应的修改就好了,而不用去每一个页面查找我们的接口然后再修改会很麻烦。关键是,万一修改的量比较大,就规格gg了。还有就是如果直接在我们的业务代码修改接口,一不小心还容易动到我们的业务代码造成不必要的麻烦。

    好了,最后把完成的axios封装代码奉上。

    /**axios封装*请求拦截、相应拦截、错误统一处理*/importaxiosfrom'axios';importQSfrom'qs';import{Toast}from'vant';importstorefrom'../store/index'//环境的切换if(process.env.NODE_ENV=='development'){axios.defaults.baseURL='/api';}elseif(process.env.NODE_ENV=='debug'){axios.defaults.baseURL='';}elseif(process.env.NODE_ENV=='proction'){axios.defaults.baseURL='/';}//请求超时时间axios.defaults.timeout=10000;//post请求头axios.defaults.headers.post['Content-Type']='application/x-www-form-urlencoded;charset=UTF-8';//请求*axios.interceptors.request.use(config=>{//每次发送请求之前判断是否存在token,如果存在,则统一在/响应*axios.interceptors.response.use(response=>{if(response.status===200){returnPromise.resolve(response);}else{returnPromise.reject(response);}},//服务器状态码不是200的情况error=>{if(error.response.status){switch(error.response.status){//401:未登录//未登录则跳转登录页面,并携带当前页面的路径//在登录成功后返回当前页面,这一步需要在登录页操作。case401:router.replace({path:'/login',query:{redirect:router.currentRoute.fullPath}});break;//403token过期//登录过期对用户进行提示//清除本地token和清空vuex中token对象//跳转登录页面case403:Toast({message:'登录过期,请重新登录',ration:1000,forbidClick:true});//清除tokenlocalStorage.removeItem('token');store.commit('loginSuccess',null);//跳转登录页面,并将要浏览的页面fullPath传过去,登录成功后跳转需要访问的页面setTimeout(()=>{router.replace({path:'/login',query:{redirect:router.currentRoute.fullPath}});},1000);break;//404请求不存在case404:Toast({message:'网络请求不存在',ration:1500,forbidClick:true});break;//其他错误,直接抛出错误提示default:Toast({message:error.response.data.message,ration:1500,forbidClick:true});}returnPromise.reject(error.response);}});/***get方法,对应get请求*@param{String}url[请求的url地址]*@param{Object}params[请求时携带的参数]*/exportfunctionget(url,params){returnnewPromise((resolve,reject)=>{axios.get(url,{params:params}).then(res=>{resolve(res.data);}).catch(err=>{reject(err.data)})});}/***post方法,对应post请求*@param{String}url[请求的url地址]*@param{Object}params[请求时携带的参数]*/exportfunctionpost(url,params){returnnewPromise((resolve,reject)=>{axios.post(url,QS.stringify(params)).then(res=>{resolve(res.data);}).catch(err=>{reject(err.data)})});}

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流。

    vue-cli跨域 vue使用axios请求接口怎么操作?

    全局使用Axios

    首先,在自己建的公用方法的文件中new一个新的HttpUtil.js文件。以下为HttpUtil.js的内容:

    var axios = require('axios')// 配置项目根如路径var root = 'http://localhost:8090/manage'// axios请求function httpApi (method, url, params) { return new Promise((resolve, reject) => { axios({ method: method, url: url, data: method === 'POST' || method === 'PUT' ? params : null, params: method === 'GET' || method === 'DELETE' ? params : null, baseURL: root, withCredentials: false }).then(

    (response) => {

    resolve(response)

    }

    ).catch(

    (error) => {

    reject(error)

    }

    )

    })

    }// 返回在vue模板中的调用接口export default { get: function (url, params) { return httpApi('GET', url, params)

    }, post: function (url, params) { return httpApi('POST', url, params)

    }, put: function (url, params) { return httpApi('PUT', url, params)

    }, delete: function (url, params) { return httpApi('DELETE', url, params)

    }

    }

    ajax中post与get方法如何使用以及区别


    本文章将介绍的是ajax中get和post请求,有一定的参考价值,希望对大家学习ajax有所帮助
    Ajax含义
    AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。 AJAX 是实际上就是 异步 JavaScript和XML,它 是一种用于创建快速动态网页的技术还可以通过在后台与服务器进行少量数据交换,使网页实现异步更新。这个技术的应用就意味着可以在不重新加载整个网页的情况下,对网页的某个部分进行更新。【ajax教程】
    ajax中有两个重要的概念是get与post的知识,今天将和大家介绍这两个知识点的使用方法以及它俩之间的区别
    GET()请求
    get() 方法通过远程http get 请求载入信息,请求成功时可调用回调函数
    参数传递都是通过 URL 地址中的 ?进行传递参数,使传递数据到服务端
    格式:
    get(URL,callback);
    URL :传递想传递的url,必需具备
    callback:参数是请求成功后所执行的函数名,可选例如

    var xhr = new XMLHttpRequest()
    xhr.open('GET', './demo.php?id=1)//open 方法的第一个参数的作用就是设置请求的方法
    xhr.send(null)// 需要提交到服务端的数据可以通过 send 方法的参数传递
    xhr.onreadystatechange = function () {
    if (this.readyState === 4) {
    console.log(this.responseText)
    }
    }POST 请求
    通过http post请求从服务器上请求数据的过程中,要采用请求体承载所需要提交的数据
    格式:
    post(url,data,success(data, textStatus, jqXHR),dataType)
    url :规定把请求发送到哪个 URL。必须具备
    data:映射或字符串值,指请求发送到服务器的数据,是可选的
    success(data, textStatus, jqXHR):指请求成功时执行的回调函数,可选的
    dataType:服务器响应的数据类型例如
    var xhr = new XMLHttpRequest()
    xhr.open('POST', './add.php')
    // 设置请求头中的 Content_Type 为 application/x_www_form_urlencoded以便于服务端接收数据
    xhr.setRequestHeader('Content_Type', 'application/x_www_form_urlencoded')
    xhr.send('key1=value1&key2=value2')
    xhr.onreadystatechange = function () {
    if (this.readyState === 4) {
    console.log(this.responseText)
    }
    }post与get之间区别
    get是从服务器获取数据 ,而post是向服务器提交数据 ,一般情况下 get 传递的都是参数性质的数据,而 post都是业务数据
    发送大量数据的时候用 post,发送少量数据用get
    总结:

    ajax中post与get方法如何使用以及区别


    本文章将介绍的是ajax中get和post请求,有一定的参考价值,希望对大家学习ajax有所帮助
    Ajax含义
    AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。 AJAX 是实际上就是 异步 JavaScript和XML,它 是一种用于创建快速动态网页的技术还可以通过在后台与服务器进行少量数据交换,使网页实现异步更新。这个技术的应用就意味着可以在不重新加载整个网页的情况下,对网页的某个部分进行更新。【ajax教程】
    ajax中有两个重要的概念是get与post的知识,今天将和大家介绍这两个知识点的使用方法以及它俩之间的区别
    GET()请求
    get() 方法通过远程http get 请求载入信息,请求成功时可调用回调函数
    参数传递都是通过 URL 地址中的 ?进行传递参数,使传递数据到服务端
    格式:
    get(URL,callback);
    URL :传递想传递的url,必需具备
    callback:参数是请求成功后所执行的函数名,可选例如

    var xhr = new XMLHttpRequest()
    xhr.open('GET', './demo.php?id=1)//open 方法的第一个参数的作用就是设置请求的方法
    xhr.send(null)// 需要提交到服务端的数据可以通过 send 方法的参数传递
    xhr.onreadystatechange = function () {
    if (this.readyState === 4) {
    console.log(this.responseText)
    }
    }POST 请求
    通过http post请求从服务器上请求数据的过程中,要采用请求体承载所需要提交的数据
    格式:
    post(url,data,success(data, textStatus, jqXHR),dataType)
    url :规定把请求发送到哪个 URL。必须具备
    data:映射或字符串值,指请求发送到服务器的数据,是可选的
    success(data, textStatus, jqXHR):指请求成功时执行的回调函数,可选的
    dataType:服务器响应的数据类型例如
    var xhr = new XMLHttpRequest()
    xhr.open('POST', './add.php')
    // 设置请求头中的 Content_Type 为 application/x_www_form_urlencoded以便于服务端接收数据
    xhr.setRequestHeader('Content_Type', 'application/x_www_form_urlencoded')
    xhr.send('key1=value1&key2=value2')
    xhr.onreadystatechange = function () {
    if (this.readyState === 4) {
    console.log(this.responseText)
    }
    }post与get之间区别
    get是从服务器获取数据 ,而post是向服务器提交数据 ,一般情况下 get 传递的都是参数性质的数据,而 post都是业务数据
    发送大量数据的时候用 post,发送少量数据用get
    总结:

    ajax如何使用?

    //定义一个
    var xmlHttp;
    function createXMLHttpRequest(){
    if(window.XMLHttpRequest){
    xmlHttp = new XMLHttpRequest();
    }else if(window.ActiveXObject){
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    }

    function check(){
    //1.获取需要发送服务器的请求参数
    var username = document.getElementById("username").value;

    //2.创建XMLHttpRequest对象
    createXMLHttpRequest();
    //3.定义url,指定发送到服务器哪个文件
    var url = "servlet/CheckServlet";
    //4.打开连接,异步模式
    xmlHttp.open("post", url, true);
    //5.设置请求头信息
    xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    //6.回调函数,接收服务器响应数据
    xmlHttp.onreadystatechange = function (){
    //8.接收服务器端的响应数据
    //判断请求发送的状态和HTTP状态码
    if(xmlHttp.readyState==4&&xmlHttp.status==200){
    //9.接收响应数据
    var text = xmlHttp.responseText;
    alert(text);
    //10.根据text的值确定在页面动态显示相应的信息
    var msg_username = document.getElementById("msg_username");
    if(text=="false"){
    msg_username.innerHTML="<font color='red'>否</font>";
    document.getElementById("submit").disabled=true;
    }else{
    msg_username.innerHTML="<font color='green'>是</font>";
    document.getElementById("submit").disabled=false;
    }
    }
    }
    //7.发送
    xmlHttp.send("username="+username);
    alert(username);
    }追问这边不懂。请问这个放在哪儿呢?ajax的话,得调用一个jquery方法?我上面写的路径好像是无效的。里面没有方法。

    ajax如何使用?

    //定义一个
    var xmlHttp;
    function createXMLHttpRequest(){
    if(window.XMLHttpRequest){
    xmlHttp = new XMLHttpRequest();
    }else if(window.ActiveXObject){
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    }

    function check(){
    //1.获取需要发送服务器的请求参数
    var username = document.getElementById("username").value;

    //2.创建XMLHttpRequest对象
    createXMLHttpRequest();
    //3.定义url,指定发送到服务器哪个文件
    var url = "servlet/CheckServlet";
    //4.打开连接,异步模式
    xmlHttp.open("post", url, true);
    //5.设置请求头信息
    xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    //6.回调函数,接收服务器响应数据
    xmlHttp.onreadystatechange = function (){
    //8.接收服务器端的响应数据
    //判断请求发送的状态和HTTP状态码
    if(xmlHttp.readyState==4&&xmlHttp.status==200){
    //9.接收响应数据
    var text = xmlHttp.responseText;
    alert(text);
    //10.根据text的值确定在页面动态显示相应的信息
    var msg_username = document.getElementById("msg_username");
    if(text=="false"){
    msg_username.innerHTML="<font color='red'>否</font>";
    document.getElementById("submit").disabled=true;
    }else{
    msg_username.innerHTML="<font color='green'>是</font>";
    document.getElementById("submit").disabled=false;
    }
    }
    }
    //7.发送
    xmlHttp.send("username="+username);
    alert(username);
    }追问这边不懂。请问这个放在哪儿呢?ajax的话,得调用一个jquery方法?我上面写的路径好像是无效的。里面没有方法。

    axios和ajax区别

    1、功能不同

    Axios:Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。

    AJAX:AJAX 是与服务器交换数据并更新部分网页的,在不重新加载整个页面的情况下Ajax = 异步 JavaScript 和 XML(标准通用标记语言的子集)。

    2、特点不同

    Axios从浏览器中创建 XMLHttpRequests,可以从 node.js 创建 http 请求,支持 Promise API,可以拦截请求和响应、转换请求数据和响应数据。

    Ajax是一种用于创建快速动态网页的技术,Ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

    3、部分参数不同

    Axios:

    axios({

    url: 'http://jsonplaceholder.typicode.com/users',

    method: 'get',

    responseType: 'json', // 默认的

    data: {

    //'a': 1,

    //'b': 2,

    }

    }).then(function (response) {

    console.log(response);

    console.log(response.data);

    }).catch(function (error) {

    console.log(error);

    })

    Ajax:

    $.ajax({

    url: 'http://jsonplaceholder.typicode.com/users',

    type: 'get',

    dataType: 'json',

    data: {

    //'a': 1,

    //'b': 2,

    },

    success: function (response) {

    console.log(response);

    }

    })

    扩展资料:

    axios的实例方法:

    以下是可用的实例方法。指定的配置将与实例的配置合并

    axios#request(config)

    axios#get(url[, config])

    axios#delete(url[, config])

    axios#head(url[, config])

    axios#post(url[, data[, config]])

    axios#put(url[, data[, config]])

    axios#patch(url[, data[, config]])

    使用ajax发送异步请求,请求后端的控制层方法,并且获取这个方法返回的日期,然后显示在页面上?

    下面是一个使用 AJAX 发送异步请求,调用后端的控制层方法,并且获取这个方法返回的日期的示例:

    <!DOCTYPE html>

    <html>

    <head>

    <title>AJAX 示例</title>

    </head>

    <body>

    <!-- 在页面上添加一个按钮,点击后发送 AJAX 请求 -->

    <button id="btn">获取日期</button>

    <!-- 在页面上添加一个元素,用于显示返回的日期 -->

    <div id="result"></div>

    <script>

    // 获取按钮和结果元素

    var btn = document.getElementById('btn');

    var result = document.getElementById('result');

    // 为按钮添加点击事件处理函数

    btn.onclick = function() {

    // 创建一个 AJAX 对象

    var xhr = new XMLHttpRequest();

    // 设置请求方式和请求地址

    xhr.open('GET', '/getDate');

    // 发送请求

    xhr.send();

    // 监听请求的状态变化

    xhr.onreadystatechange = function() {

    // 如果请求已完成且响应就绪

    if (xhr.readyState === 4 && xhr.status === 200) {

    // 解析响应内容并显示在页面上

    result.innerHTML = xhr.responseText;

    }

    };

    };

    </script>

    </body>

    </html>

    这段代码中,我们在页面上添加了一个按钮和一个元素。当点击按钮时,会发送一个 GET 请求到后端的控制层方法(在这里假设后端控制层方法的请求地址为 /getDate)。

    当请求完成并返回响应后,我们就可以通过 xhr.responseText 获取返回的日期,并将其显示在页面上。

    环绕娱乐网还为您提供以下相关内容希望对您有帮助:

    在项目中如何使用ajax请求

    ajax请求方法如下一、普通的ajax,async即同步异步处理,success之后,会有data返回值,status请求状态,xhr封装的是请求头,但要注意是的是,并不是所有的请求头信息都能获取到的,比如center-length就获取不到$.ajax({ t...

    ajax如何使用?

    1.创建异步对象,首先,创建一个XMLHttpRequest异步对象。2.设置请求方式和地址,然后,设置请求方式和请求地址 3.用send发送请求,接着,用send发送请求。4.监听状态变化,然后,监听状态变化。5.接收返回的数据,最后,接收...

    在vue组件中使用axios的方法

    首先需要安装axios,这个会npm的都知道 下一步,在main.js中引入axios import axios from "axios";与很多第三方模块不同的是,axios不能使用use方法,转而应该进行如下操作 Vue.prototype.$axios = axios;接着,我们就可以...

    怎么使用Ajax实现循环

    一、业务需求在开发中,当一个列表页面加载完成后,我需要根据列表每一项的id去服务器端获取对应的数据然后再把获取的数据赋给当前id对应的标签。例如如下表格:我有一系列的商品编号,我需要根据商品编号通过ajax到服务器获取...

    ajax中post与get方法如何使用以及区别

    AJAX 是实际上就是 异步 JavaScript和XML,它 是一种用于创建快速动态网页的技术还可以通过在后台与服务器进行少量数据交换,使网页实现异步更新。这个技术的应用就意味着可以在不重新加载整个网页的情况下,对网页的某个部分进...

    ajax向服务器请求数据实现html页面局部刷新

    首先,需要给予一个数据提交到服务器的资源路径地址url,Ajax会将资源提交到服务器对资源请求进行分析与处理。data是您需要传输的具体数据内容,服务器会根据您的请求资源类型来进行处理。传输数据到服务器,主要使用的方式主要有...

    Ajax跨域请求如何使用

    首先来看看在页面中如何使用jQuery的ajax解决跨域问题的简单版:$(document).ready(function(){var url='http://localhost:8080/WorkGroupManagment/open/getGroupById"+"?id=1&amp;callback=?';$.ajax({url:url,dataType:...

    怎样实现用ajax向服务器发送请求并接收服务器返回的数据,并在HTML页面...

    比如a.aspx?参数",\x0d\x0atype:"POST",//这里是AJAX请求的方式\x0d\x0adataType:"JSON",//如果你回发的内容是JSON格式的就用这个,否则用Text或其他\x0d\x0adata:{\x0d\x0a参数1:...

    从线上拉的Vue代码,直接运行报下面的错误

    或者部署时在Nginx中做反向代理,但是项目中一旦涉及大量的需要文件上传的部分(文件上传不走Ajax的方法),我们需要考虑更好管理接口的baseURL,项目中 Ajax 请求用 axios ,

    VUE3 element-plus中el-alert如何动态修改title?

    需要使用 Ajax 请求后端接口, 并接受返回值, 再将返回值对象拆解后放入对应的 ele 元素中, Ajax 库建议使用 axios, 下载使用 npm install axios ( 前提是下载了 Node.js ), 然后在 src 中创建一个 utils 文件夹, 再...

    Top