之前用了封装的ajax,因为请求出了点问题,我试了下jQuery的$.ajax,报出了415的错误,从没遇到过这个错误,所以也是花了不少时间在研究这个问题的出处
http请求415错误UnsupportedMediaType
415错误的解释是说,服务器无法处理请求附带的媒体格式,不明白什么意思,一开始以为是后台设置没办法解析,后来用postman、swagger请求,都可以成功,确定是我请求的问题,查看了HTTP请求头部文件,发现content-type跟我们的json格式不同
所以在ajax请求中添加content-type设置为application/json,然后记得将数组对象格式化为json对象JSON.stringify()
再请求一次,OK了
HTTP请求415错误–不支持的媒体类型(Unsupportedmediatype)
通常有以下情况:
1:检查你的http请求头信息,比如因为User-Agent被服务器设置拒绝请求了;
比如你写的的爬虫,就很有可能因为没有伪装成浏览器,被拒绝请求
user-agent详情
1
2
3
2:查看你的http请求方法,以及服务器端的设置
比如:有一个强制用post请求的接口,你是不是用了非post请求
3:post请求参数设置,是不是必须的,json格式
比如下面,两段代码,
如下json参数,body
或者看后台控制器接收方式是json,还是body,如果后台是body接收,前台必须用form提交
415(UnsupportedMediaType)
查询资料发现没有设置contentType,
1.Ajax请求时没有设置Content-Type为Json。
2.发送的请求内容不要转成JSON对象,直接发送JSON字符串即可,否则就415错误!
改代码:
functiontest(){
$.ajax({
type:"POST",
async:false,
contentType:'application/json',
data:'[{"key":"displayName","value":["NE32003"]},{"key":"hasLabel","value":["1"]}]',
success:function(data){
总之,http请求415错误UnsupportedMediaType给大家简单的介绍了一些,希望大家多看看。