1. 程式人生 > >vue-resource POST請求 報400錯誤解決方案

vue-resource POST請求 報400錯誤解決方案

相關技術

SpringMVC

vue-resource

問題描述

使用ajax向後端傳送POST請求成功,但是改用vue-resource傳送POST請求一直出現400 Bad Request 錯誤,程式碼及錯誤如下:


後端程式碼

AJAX正常請求


AJAX傳送POST請求
http請求詳情 成功

vue-resource異常請求


vue-reource POST請求程式碼
http請求詳情 400錯誤

可以看出AJAX請求傳送200 OK,而vue-resource請求傳送400 Bad Request。

具體原因可以看出來在請求頭中,前者的Content-Type=application/x-www-form-urlencoded

,導致請求體中的資料格式為Form Data:key1=val1&key2=val2;而後者的Content-Type=application/json,導致請求體中的資料格式為Request PayLoad{key1:val1,key2:val2}。顯然服務端接收第一種引數格式而拒絕第二種,所以丟擲400狀態碼。

所以要做的就是將vue-resource中的請求體中的引數格式指定為Form Data即可。

emulateJSON

boolean型別 預設值為false

用途:將request body以application/x-www-form-urlencoded content type傳送

在傳送POST請求的options選項中新增 {emulateJSON:true} 即可:


正確的POST請求

總結

請求頭中的Content-Type欄位會說明實體主體內物件的媒體型別。AJAX預設的Content-Type=application/x-www-form-urlencoded;vue-resource的POST請求預設的Contnet-Type=application/json;通過指定emulateJSON的值來指定vue-resource Content-Type的值。

相關推薦

vue-resource POST請求 400錯誤解決方案

相關技術 SpringMVC vue-resource 問題描述 使用ajax向後端傳送POST請求成功,但是改用vue-resource傳送POST請求一直出現400 Bad Request 錯誤,程式碼及錯誤如下: 後端程式碼 AJAX正常請求

springsecurity使用非同步POSt請求404錯誤解決方法

問題原因一:springsecrurity實現了csrf攻擊攔截 解決方法: 在html頁面頭部新增csrf引數: <meta name="_csrf" th:content="${_csrf.token}"/> <meta na

使用cors解決跨域,ionic打包到android手機上發post請求403錯誤

如題,百度了一圈也沒有找到答案,最後翻了個牆,最終找到了外國友人的答案: My backend is using Tomcat, one of the tomcat filters is designed for handle CORS request, it named

vue-resource post請求,header無法設定解決方案

在vue-resource 裡面加header頭的時候,get請求正常加入,但post,沒有正常加上,這種情況是因為options.emulateHTTP覆蓋導致的,在請求攔截器裡面加請求頭也不行,所以解決方案是全域性寫死請求頭:Vue.http.options.emulat

SpringMVC提交數據遭遇基礎類型和日期類型400錯誤解決方法

筆記 運行 inpu 遭遇 imp public 增加 試用 too 使用SpringMVC開發的時候,頁面如果有日期格式的數據,後臺接受也是java.util.Date,則報告400錯誤 。下面是解決方案的演示示例: 這個是實體類,裏面createDate就是ja

http請求400錯誤原因

HTTP 400 錯誤 - 請求無效 (Bad request) 在ajax請求後臺資料時有時會報 HTTP 400 錯誤 - 請求無效 (Bad request);出現這個請求無效報錯說明請求沒有進入到後臺服務裡; 原因: 1)前端提交資料的欄位名稱或者是欄位型別和後臺的實體類不一

ajax post 請求415\ 400 錯誤

前後臺通過ajax進行資料互動的時候出現了異常報錯415, 請求方式如下: // 錯誤1... $.ajax({ url: url + '/license/genera

@RequestBody傳送請求400錯誤

引數不使用@RequestBody 在使用Postman進行Post請求時,通常做法是填入key和value的值即可。 引數使用@RequestBody 使用@RequestBody註解時,在傳送請求時,就需要在Postman的“headers”新增key:Content-Type,value:appl

vue+vue-resource post請求

1.目錄結構 2.learnVue.html <!DOCTYPE html> <html lang="en"> <head> <meta cha

http請求400錯誤的原因分析

在ajax請求後臺資料時有時會報 HTTP 400 錯誤 - 請求無效 (Bad request);出現這個請求無效報錯說明請求沒有進入到後臺服務裡; 原因:1)前端提交資料的欄位名稱或者是欄位型別和後臺的實體類不一致 或 前端提交的引數跟後臺需要的引數個數不一致,導致無法封裝;          2

關於使用JQUERY.AJAX中POST請求遇到413錯誤解決辦法

413錯誤:因實體過大本人網上搜索很久,未發現有效的答案.經解決後,感覺有必要將方法分享出來,以便大家在開發過程中少走彎路!$.ajax({    url : url,    data :  formdata,    processData : false,     cont

使用postMan工具測試post請求出現400錯誤的一個坑,記錄下!

1.請求頭為Content-Type:application/json,這個不用多說 2.關鍵Body,格式選擇raw,並且資料外面包裹一對花括號,這樣才能正確轉化成json格式的資料, 這個小坑,頭疼了好久,記錄下,長個教訓!!!!

http請求出現406錯誤解決方案

ack -s jackson font 偽靜態 技術 family com roman 當http請求出現406錯誤時,會報如下錯誤: 此時一般需考慮兩個問題: 1、查看Jackson包是否存在(springMVC默認依賴Jackson包 )。

vue中axios請求payload的暴力解決方案

  去年公司做了一個小程式商城專案,運營了一段時間決定再次開發一個H5商城,用於微信好友之間的分享以及app內的巢狀,於是便開了一個vue專案,介面大多都是複用小程式的。  在做專案的過程中本人遇到一個由axios導致的問題——後臺介面拿不到請求的引數。因為介面都是之前寫好的

對實際專案中的get請求中文亂碼以及post請求中文亂碼的解決方案

1.解決post請求的中文亂碼問題 (1)在專案中web.xml配置檔案中加入: <filter> <filter-name>CharacterEncodingFilter&

websocket nginx 400錯誤解決方案

錯誤原因 nginx用了轉發,頭資訊沒設定全廢話不多說,直接貼出nginx配置檔案location / { proxy_pass http://localhost:800

MySQL5.7.251055錯誤解決方案

table for tex mysqld centos nag fff ati http 基本信息:  系統一:CentOS7.5 + mysql5.7.25  系統二:win10 + mysql5.7.25解壓縮版 數據庫表結構如下: 對MySql進行操作時報以下

前後端分離。前端POST請求引數過長,導致400錯誤解決辦法及分析

這兩天做好的功能要上線了。但是測試的時候忽然發現當POST提交資料量多大時,會導致後端報400錯誤。最開始以為瓶頸存在於tomcat,因為tomcat預設能接受的POST請求大小為2M,所以手動修改tomcat server.xml 檔案,將接受POST大小修改為不限制。

Unable to verify your data submission.加入了_csrf也400錯誤解決

需要 pos 簡單 配置文件 ken 驗證 中文 查看 數據 <input type="hidden" name="_csrf" value="<?=Yii::$app->request->csrfToken?>" />如果你添加了以上標

解決nginx轉發websocket400錯誤

socket.io 本地 官方 upgrade lin 通信協議 read 都沒有 hub 解決nginx轉發websocket報400錯誤 說明 由於個人服務器上面有多個項目,配置了二級域名,需要對二級域名進行轉發,在轉發工作這快采取了大名鼎鼎的nginx。在這之前所