HTTP响应返回415状态码,错误信息为“Unsupported Media Type”,也就是服务器无法处理请求附带的媒体格式。比如服务端可接收的格式为json,客户端发出的报文header 中”content-type“为text。

解决方法两个,一个是不要设置服务端仅接收某一非默认类型,如json,另一个是客户端补充请求头信息,在请求头中加入Content-Type指定媒体格式类型(也可以理解成编码格式)。

在请求头中添加: "Content-Type":"application/json"

xhr.setRequestHeader("Content-type","application/json");

  axios({url:that.checkSignUrl, 
                method: 'post',
                data:JSON.stringify({
                    userName: that.userName
                  }),
                 headers: { 'content-type': 'application/json;charset=UTF-8' }}
                  )
                  .then(function (response) {
                      console.log(response);
                  })
                  .catch(function (error) {
                    console.log(error);
                  });

加上请求头后,可能会触发option操作,后台应允许option请求,同时应在其返回信息中增加部分头信息,尤其是允许客户端设置”Content-Type“头信息。具体如下:

((HttpServletResponse) response).setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
((HttpServletResponse) response).setHeader("Access-Control-Max-Age", "3600");
((HttpServletResponse) response).setHeader("Access-Control-Allow-Headers", "Content-Type,XFILENAME,XFILECATEGORY,XFILESIZE,x-requested-with,Authorization");
((HttpServletResponse) response).setHeader("Access-Control-Allow-Credentials", "true");
((HttpServletResponse) response).setHeader("Access-Control-Allow-Origin", "*");

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐