默认情况下我们在Vue项目中引入了axios,是哟好难过axios进行post请求,是用application/json的方式去请求的,不过可能后端API的请求方式是form-data(application/x-www-form-urlencoded)
实现方式一
package.json下增加qs:
"qs": "^6.10.1"
{
"name": "newproject",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build"
},
"dependencies": {
"axios": "^0.21.1",
"core-js": "^3.6.5",
"qs": "^6.10.1",
"vue": "^2.6.11"
},
"devDependencies": {
"@vue/cli-plugin-babel": "~4.5.0",
"@vue/cli-plugin-router": "~4.5.0",
"@vue/cli-plugin-vuex": "~4.5.0",
"@vue/cli-service": "~4.5.0",
"less": "^3.0.4",
"less-loader": "^5.0.0",
"vue-cli-plugin-axios": "0.0.4",
"vue-template-compiler": "^2.6.11"
},
"browserslist": [
"> 1%",
"last 2 versions",
"not dead"
]
}
调用:
import qs from "qs";
let payload = qs.stringify({start: 0, limit: 10, keywords: ''});
http.post('/api/info_list', payload).then(res => {
// console.log(res)
});
实现方式二
var params = new FormData();
params.append("keywords", "");
params.append("limit", "10");
params.append("page", "0");
axios({
method: "post",
url: "/api/info_list",
data: params,
headers: { "Content-Type": "multipart/form-data" },
})
.then(function (response) {
//handle success
console.log(response);
})
.catch(function (response) {
//handle error
console.log(response);
});
文章评论