fetch或者axios上傳文件同時傳遞參數的問題


一個圖片文件上傳之后,數據庫也需要進行操作,需要把一些相關信息同時傳到服務器。
一開始想用兩次提交的方法,把傳文件和操作數據庫分別進行,后來感覺這樣太麻煩,而且對網絡性能也不好。

起初把信息寫到了headers里,
        let config = {
            headers: {
                'Content-Type': 'multipart/form-data',
         'myinfo_title': this.state.dish_name
            }
        }
        axios.post(url,formData,config)

試驗的時候圖省事,輸入的全是字母數字,運行一切正常。以為沒事開始正式測試輸入漢字時,前端提交操作沒反應了。
各種試都不好使。我這里原來用的axios,后來用fetch試也一樣不好使,但fetch有提示:
Cannot convert value in record<ByteString, ByteString> branch of (sequence<sequence<ByteString>> or record<ByteString, ByteString>) to ByteString because the character at index 0 has value 19968 which is greater than 255.
一定是字符集的問題。應該是headers有要求,只能用ascii字符。
只能另找出路。headers不能接受漢字,data能接受,那就把數據寫到data里。
        let formData=new FormData();
        formData.append('file',file);
        formData.append('myinfo_title', this.state.dish_name);
        axios.post(url,formData,config)


在服務器那邊用req.body.myinfo_title就取到漢字信息了。一切OK。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM