使用vue有一段時間了,下面是我在java環境下使用vue+axios的時候遇到的一個坑,在這分享給大家,如有不正確或者疑惑的地方可以給我留言。
1.在使用異步請求后臺時,由于官方不在更新vue-resource,推薦使用axios,因此在使用的時候難免會遇到各種問題。目前遇到最大的問題是在使用axios.post的請求向java后端傳入入參時,后端無法接收到參數。在這里主要處理移動端瀏覽器兼容的問題。
在這里我提供了兩種解決辦法:
一、urlsearchparams.append()方法
由于urlsearchparams接口在各個瀏覽器兼容性問題,這種方法在pc端絕大多數瀏覽器是ok的,但是在手機端正相反,基本上都不支持。
如圖:
1
2
3
4
5
6
7
8
9
10
11
12
|
getbarcode : _ => { let param = new urlsearchparams(); param.append( "username" , "admin" ); param.append( "userpassword" , "admin" ); axios.post( "/index.html" ,param) .then(function(response){ console.log(response); }) . catch (function(response){ console.log(response) }) } |
二、主要解決移動端瀏覽器兼容性問題
1
2
3
4
5
6
7
8
|
//請求后臺數據之前轉換入參 transformrequest: function (data) { let ret = '' for (let it in data) { ret += encodeuricomponent(it) + '=' + encodeuricomponent(data[it]) + '&' } return ret } |
1
2
3
4
5
6
7
8
9
|
axios.post(url, this .transformrequest(param),{ headers: { 'content-type' : 'application/x-www-form-urlencoded;charset=utf-8' } }).then(function(res){ console.log(res); }). catch (function(res){ console.log(res); }) |
以上這篇解決java使用axios.js的post請求后臺時無法接收到入參的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/u011782751/article/details/76269321