jQuery.ajax的post提交默认的请求头的Content-Type: application/x-www-form-urlencoded
而axios.post提交的请求头是Content-Type: application/json。
application/json是一个趋势,但是如果改一个旧项目,把jQuery.ajax全部换成axios.post时,需要对请求做一些配置。
改之前的代码:
// 没有指定请求头的content-type var data = {age: 18}; $.ajax({ url: '', type: 'POST', data: data dataType: 'json', success: function(result) { // do something } })
使用axios的代码
import axios from 'axios'; import qs from 'qs'; var data = {age: 18}; var url = ''; axios.post( url, qs.stringify(data), {headers: {'Content-Type': 'application/x-www-form-urlencoded'}} ).then(result => { // do something })