我正在尝试将JSON从表单发送到spring mvc控制器,但我总是收到错误415。
我已经尝试过更改标题,类型,字符串等,如其他帖子所述,但没有成功。
有人可以帮忙吗?我是新手,仍在努力理解。
主页功能:
<script type="text/javascript">
function ConvertFormToJSON(form) {
var array = jQuery(form).serializeArray();
var json = {};
jQuery.each(array, function() {
json[this.name] = this.value || '';
});
return json;
}
jQuery(document).ready(function() {
jQuery('#novoitem').submit(function() {
var form = this;
var json = ConvertFormToJSON(form);
console.log(JSON.stringify(json));
jQuery.ajax({
dataType : "json",
contentType : "application/json",
type : "POST",
url : "inventario/",
data : JSON.stringify(json),
contentType : "application/json",
success : function(data) {
alert(data);
}
});
return false;
});
});
形式:
<form id="novoitem" method="post" enctype='application/json'>
<label for="usuario">Usuario:</label>
<input id="usuario" name="usuario" type="text">
<label for="tipo">Tipo:</label>
<input id="tipo" name="tipo" type="text">
<label for="nomeItem">Item:</label>
<input id="nomeItem" name="nomeItem" type="text">
<label for="quantidade">Quantidade:</label>
<input id="quantidade" name="quantidade"type="text">
<label for="vencimento">Vencimento:</label>
<input id="vencimento" name="vencimento" type="text">
<input type="submit" value="Incluir">
</form>
控制器:
@RequestMapping(value = "/inventario/", method = RequestMethod.POST)
public ResponseEntity<Void> insereItem(@RequestBody Item item){...}
Console.log Stringify:
{"usuario":"a","tipo":"b","nomeItem":"c","quantidade":"d","vencimento":"e"}
错误:
POST http://localhost:8888/inventario/ 415 (Unsupported Media Type)
答案 0 :(得分:0)
您必须在控制器中的请求映射中添加MediaType,如下所示。
public class NewTest1 extends config{
@Test
public void test1() {
driver.get("http://www.google.com");
}
}
答案 1 :(得分:0)
eighter你在发送ajax请求时删除了数据类型 即,
dataType : "json"
或者您必须按如下所示生成application / json响应
@RequestMapping(value = "/inventario/", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
它将响应作为JSON对象与ajax响应dataType键匹配。 你可以使用其中任何一个。