我正在使用spring boot创建一个API。在这个项目中,我使用spring web,JPA,jstl和MySql作为API的依赖项。在这个项目中,我创建了一个Controller,Model和Repository。基本上,此API执行CRUD操作。我还创建了一个使用自己的API的客户端。当我使用Postman POST数据时,它成功地将数据插入数据库并给我200 OK代码。然后我创建了网页并创建了一个html表单并使用Ajax来获取该数据。但问题是当我单击表单中的插入按钮时,它会给我这个错误。
Whitelabel错误页面
这个应用程序没有/ error的显式映射,所以你看到了 这是一个后备。
Tue May 01 05:16:48 IST 2018出现意外错误 (type = Method Not Allowed,status = 405)。请求方法' POST'不 支持的
我该如何解决这个问题?
我的控制器:
package com.kisalka.pacrestapi.controller;
import java.util.List;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import com.kisalka.pacrestapi.repository.ImRepository;
import com.kisalka.pacrestapi.model.ImModel;
@RestController
@RequestMapping("/api")
public class ImController {
@Autowired
private ImRepository TaskRepository;
@RequestMapping(method=RequestMethod.POST, value="/tasks")
public ImModel createNote(@RequestBody ImModel note) {
return TaskRepository.save(note);
}
}
我的网页:
<form class="form-horizontal" method="POST" action="">
<div class="form-group">
<label class="control-label col-md-3">Project Name</label>
<div class="col-md-7">
<input type="text" class="form-control" name="pname" id="txtPname"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3">Developer Name</label>
<div class="col-md-7">
<input type="text" class="form-control" name="devname" id="txtDevname"/>
</div>
</div>
<div class="form-group">
<input type="submit" class="btn btn-primary" value="Save" id="btnRegister"/>
</div>
</form>
jQuery和Ajax部分:
<script type="text/javascript">
$(document).ready(function () {
// Save the new user details
$('#btnRegister').click(function () {
$.ajax({
url: '/api/tasks',
method: 'POST',
data: {
pname: $('#txtPname').val(),
devname: $('#txtDevname').val()
},
success: function () {
alert("Inserted");
},
error: function (jqXHR) {
$('#divErrorText').text(jqXHR.responseText);
$('#divError').show('fade');
}
});
});
});
</script>
答案 0 :(得分:3)
为什么你同时拥有一个带有提交按钮和ajax请求的表单?赔率是表格首先被提交,这意味着请求被发送到&#34;&#34;这可以解释为什么你得到405: Request method 'POST' not supported
尝试替换
<form class="form-horizontal" method="POST" action="">
代表
<form class="form-horizontal" method="POST" action="/api/tasks">