【问题标题】:415 Unsupported Media Type jQuery Ajax415 不支持的媒体类型 jQuery Ajax
【发布时间】:2018-02-26 12:31:04
【问题描述】:

我正在使用 Maven Rest API。通过 jQuery Ajax 调用发出 POST 请求时出现 415 错误。请看一下我的代码。

function getUserDetails() {
  var name = $("#name").val();
  var mobile = $("#mobile").val();
  var location = $("#location").val();
  var email = $("#email").val();

  var userDetails = {
    "name": name,
    "mobile": mobile,
    "email": email,
    "location": location
  };

  return userDetails;
}

function createuser() {
  sendRequest("registerProcess", getUserDetails(), "post");
}

function sendRequest(url, input, method) {
  $.ajax({
    url: url,
    async: false,
    data: JSON.stringify(input),
    error: function(response) {
      //displayResponseMessage(response);
      console.log("Error");
    },
    success: function(response) {
      console.log(" Successfull");
    },
    type: method,
    headers: {
      Accept: 'application/json;charset=utf-8',
      contentType: 'application/json;charset=utf-8'
    },
    dataType: 'json'
  });
}

这是我的控制器。 UserForm 是 POJO 类

@RequestMapping(value = "/registerProcess", method = RequestMethod.POST,consumes= MediaType.APPLICATION_JSON_VALUE)
public String addUser(@RequestBody UserForm user) 
{  
  System.out.println("Inside Controller" );
  String email = user.getEmail();
  String mobile = user.getMobile();
  System.out.println("Details :" + email + mobile);
  return "welcome";
}

提前致谢

【问题讨论】:

  • 除了眼前的问题,但永远不要使用async: false。如果您正确使用回调模式,则没有理由使用它。
  • 对于问题本身,415 错误表明请求的格式不正确。您正在发送 JSON - 您确定 API 期望的是,而不是表单 urlencoded 数据?
  • 试试data:input而不是data: JSON.stringify(input)

标签: javascript java jquery rest spring-mvc


【解决方案1】:

提供标头为'Content-Type' : 'application/json',这里输入是一个可以直接在ajax请求data :input中发送的对象

【讨论】:

  • 它通过编辑数据工作:输入和'Content-Type':'application/json'。删除了 async: false。谢谢你的回复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-25
  • 2020-06-26
  • 2017-05-20
  • 2014-05-10
  • 2019-05-01
相关资源
最近更新 更多