vue.js ajax接收参数为null,基于vue 添加axios组件,解决post传参数为null的问题

好,下面上货。

1、安装axios

npm install axios --save

2、添加axios组件

import axios from 'axios'

axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';

axios.defaults.baseURL = 'http://localhost:7878/zkview';

Vue.prototype.$ajax = axios;

3、get请求

testGet: function () {

this.$ajax({

method: 'get',

url: '/test/greeting',

params: {

firstName: 'Fred',

lastName: 'Flintstone'

}

}).then(function (response) {

console.log(response);

}).catch(function (error) {

console.log(error);

});

},

4、post请求

testPost: function () {

var params = new URLSearchParams();

params.append('name', 'hello jdmc你好');

params.append('id', '2');

this.$ajax({

method: 'post',

url: '/test/greeting2',

data:params

// data: {id: '3', name: 'abc'}

}).then(function (response) {

console.log(response);

}).catch(function (error) {

console.log(error);

})

}

5、运行结果:

af5c45aff08d2818a7c06538d92c5dd4.png

3e78a805823363215351aad312a17d83.png

6、注意:

在使用post方式的时候传递参数有两种方式,一种是普通方式,一种是json方式,如果后台接受的是普通方式,那么使用上述方式即可。

普通的formed方式

var params = new URLSearchParams();

params.append('name', 'hello jdmc你好');

params.append('id', '2');

data:params

后台接收参数:

public Student greeting2(int id,String name) {

json方式

data: {id: '3', name: 'abc'}

后台接收参数

public Object greeting2(@RequestBody Object student) {

以上这篇基于vue 添加axios组件,解决post传参数为null的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个基于AxiosVue3和TypeScript的Ajax请求封装示例: ``` import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios'; import { reactive } from 'vue'; interface ResponseData { code: number; message: string; data: any; } interface AxiosResult<T> { data: T | null; error: string | null; loading: boolean; } class AjaxService { private instance: AxiosInstance; constructor(baseURL: string) { this.instance = axios.create({ baseURL, timeout: 5000, }); this.instance.interceptors.request.use( (config: AxiosRequestConfig) => { config.headers.Authorization = sessionStorage.getItem('token') || ''; return config; }, (error: any) => { console.error(error); }, ); this.instance.interceptors.response.use( (res: AxiosResponse<ResponseData>) => { if (res.status === 200) { if (res.data.code === 0) { return res.data.data; } else { console.error(res.data.message); return null; } } else { console.error(res.status); return null; } }, (error: any) => { console.error(error); return null; }, ); } public async get<T>(url: string, config?: AxiosRequestConfig): Promise<AxiosResult<T>> { const result: AxiosResult<T> = reactive({ data: null, error: null, loading: true, }); try { const response = await this.instance.get(url, config); result.data = response; } catch (error) { result.error = error; } finally { result.loading = false; } return result; } public async post<T>(url: string, data?: any, config?: AxiosRequestConfig): Promise<AxiosResult<T>> { const result: AxiosResult<T> = reactive({ data: null, error: null, loading: true, }); try { const response = await this.instance.post(url, data, config); result.data = response; } catch (error) { result.error = error; } finally { result.loading = false; } return result; } } export default new AjaxService('https://example.com/api'); ``` 使用示例: ``` import ajax from './ajax-service'; const result = await ajax.get<User[]>('/users'); if (result.error) { console.error(result.error); } else if (result.data) { console.log(result.data); } else { console.log('No data returned.'); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值