日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

vue axios解决post传参数问题

發布時間:2023/12/10 vue 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vue axios解决post传参数问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我相信遇到這個問題的兄弟們,不帶參數的情況下都是沒有問題吧,

如果有問題,百度吧,好解決,答案都比較靠譜

這里主要針對帶參數的情況,坑多

另外,我默認你用postman帶參測試接口是沒問題的

不多說,直接上實例供參考吧,1、2可以跳過

?

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、如何解決?這里采取的是URLSearchParams的方式,因為不想導入qs模塊(qs其實也是類似這個方式,解決問題的核心就是把參數轉換成標準的鍵值對)

問題是解決了,下面是我了解到的原因,有興趣的可以繼續往下看

1、有的兄弟會遇到前端header就沒有看到axios準備post到后臺接口的參數(我就是這種情況)

2、有的兄弟會遇到前端header能看到參數,但是后臺沒有接收到參數

那么,為什么會導致這兩種情況呢?

數據變成了類json進行傳輸而且數據請求的方式也發生了變化,上面變成了Request Payload

這個時候數據不是標準的鍵值對,無法解析成類似get傳參方式 ?userid=zhonghangAlex&password=woaini123 這樣的字段

我們如果使用這樣的后臺數據獲取方式(如下Python代碼),就會發生異常,其它后端語言同理。

//Python示例 我們如果使用這樣的后臺數據獲取方式,就會發生異常req_userid = request.POST.get('userid') req_password = request.POST.get('password')

?

那么應該如何處理呢?

?

前端解決

使用URLSearchParams傳遞參數是大多數網友的做法,如下核心代碼示例

import axios = import('axios') let param = new URLSearchParams() param.append("userid", "zhonghangAlex") param.append("password", "woaini123")axios.post('xxxxx', param).then(.....)

果然我們傳遞的參數就正常了,后臺可以獲取到相應的鍵值對,但是使用這樣的方法有兩點壞處,第一個是前端請求每一個字段都append會很麻煩,第二個就是這個對象它不兼容IE和Edge甚至在360瀏覽器都會掛掉,我曾經嘗試過IE11版本都不行,提示這個對象缺失。所以我們最好的辦法就是在后端做一個處理!

后端解決

????? 經過查閱大量的資料,我發現,正如我前面說過的,get請求發送的是很標準的鍵值對,數據可以被后端解析,那為什么后端不能解析json格式的post數據呢?按照這個思路我研究了下request的api,發現這個json是封裝到body中的,所以,在后端的調用應該使用body對象。

這就是后端處理的辦法,核心的代碼是:

//python 核心代碼示例 req = json.loads(request.body) req_userid = req['userid'] req_password = req['password']

這樣req_userid和req_password就分別存儲了前端發來的數據。

前端使用node的時候也是一樣的,post請求的數據會封裝到request的body中,所以不管你采用什么樣的語言寫后臺,這個問題總是可以在后臺解決的。

?

今日贈語:

“靜”中藏著一個“爭”字,越爭心越要靜

“穩”中藏著一個“急”字,越急心越要穩

“忙”中藏著一個“亡”字,越忙越要照顧好自己

“忍”中藏著一個“刀”字,越忍越要看清事態

?

總結

以上是生活随笔為你收集整理的vue axios解决post传参数问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。