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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ajax post 请求415\ 400 错误

發布時間:2023/12/10 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ajax post 请求415\ 400 错误 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天用ajax 向后臺發送 post請求時,出現了兩個問題:

  1, 發送請求后,控制臺 返回 ?Unsupported media type-415(不支持的媒體類型),這時突然想起來,post 請求要設置請求頭,于是 寫了 xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded.'); 再次發送請求,還是報同樣的錯誤,Unsupported media type-415。查了一下,原來,后端對請求的Content-type 設為了json,??Access-Control-Request-Headers: content-type, 這時要把 content-type 設為json .? xhr.setRequestHeader('Content-Type', ' application/json');

  在設置請求頭的時候,還知道了原來第一個參數“Content-Type”, 是不區分大小寫的,寫成‘content-type’ 也是可以的。當然,設置請求頭還要注意以下問題:

    1,它必須在open()方法之后,send()方法之前調用,否則會拋錯。

    2,如果設置多個請求頭時,可以多次調用setRequestHeader(),后面的設置并不會覆蓋掉前面的設置,而是采用疊加的方式。

    3, 兩個參數之間用逗號,隔開。 有時我不經意間寫成了分號:, 造成錯誤。

  2,改完之后,發送請求,又報錯了 ,但這次是400? bad? request,? 400指的是請求無效(請求有語法問題或者不能滿足請求),也就是無法獲取到資源, 這主要是后臺要求傳入的數據和前臺我們傳入的數據不匹配,后臺無法解析數據,進行查詢,從而返回數據。但我只傳遞了一個對象。網上搜了一個解決辦法:對我們要傳遞的數據進行json 序列。

var data = JSON.stringify({"page": 0,"limit": 20,"shopId": 1 });

3, 再發送一次請求,終于請求成功。 代碼如下:

var xhr = new XMLHttpRequest(); var url ="http://192.168.1.89:8080/server/"; var data = JSON.stringify({"page": 0,"limit": 20,"shopId": 1,"timeType": 3, });xhr.open("POST", url ); xhr.setRequestHeader('Content-Type','application/json'); xhr.onload = function(){console.log(xhr.responseText) // 這里要用xhr.respnseText 獲取數據,我經常給函數傳一個data參數,獲取數據,造成錯誤 } xhr.send(data)

?

轉載于:https://www.cnblogs.com/SamWeb/p/6211134.html

總結

以上是生活随笔為你收集整理的ajax post 请求415\ 400 错误的全部內容,希望文章能夠幫你解決所遇到的問題。

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