从html页面调用RESTWeb服务spring控制器,并使用ajax单独传递表单元素和调用
我有一个为我的应用程序创建新用户的控制器(用户使用MongoDB存储)。我使用postman工具成功地运行了带有@Path和@RequestBody注释的代码 现在我必须包括一个映射到我的控制器的UI。我尝试使用ajax传递值,这些值正在被传递(从我的浏览器中检查)。但是没有调用控制器 然后我尝试了从html页面调用RESTWeb服务spring控制器,并使用ajax单独传递表单元素和调用,html,spring,rest,Html,Spring,Rest,我有一个为我的应用程序创建新用户的控制器(用户使用MongoDB存储)。我使用postman工具成功地运行了带有@Path和@RequestBody注释的代码 现在我必须包括一个映射到我的控制器的UI。我尝试使用ajax传递值,这些值正在被传递(从我的浏览器中检查)。但是没有调用控制器 然后我尝试了@RequestMapping和@RequestBody注释,但在通过邮递员访问时,我收到了以下警告 警告:未找到与请求路径/Task1_2/Create/createUser匹配的根资源,相对路径:
@RequestMapping
和@RequestBody
注释,但在通过邮递员访问时,我收到了以下警告
警告:未找到与请求路径/Task1_2/Create/createUser匹配的根资源,相对路径:/Create/createUser
最后,我尝试了所有三种注释@Path
,@RequestMapping
和@RequestBody
,然后我在Postman中得到了响应
所有这些都是通过URI从Postman直接调用控制器来完成的
但是,现在我仍然无法在调用映射到控制器的HTML页面时在浏览器上获得任何响应
这是我的控制器
@RestController
@Path("/Create/")
@RequestMapping("/Create/")
public class CreateUser {
@POST
@Path("createUser")
@RequestMapping(value="createUser",method=RequestMethod.POST,consumes="application/json")
public Response Create(@RequestBody String request)
{
.....
BasicDBObject obj = (BasicDBObject) JSON.parse(request);
.....
output = "@Produces(\"application/json\")"+"User Created Successfully";
return Response.status(200).entity(output).build();
}
这是我的ajax函数
function fun()
{
var search = { UserName: $( "input[name='UserName']" ).val(),
FirstName: $( "input[name='FirstName']" ).val(),
LastName: $( "input[name='LastName']" ).val(),
Mobile: $( "input[name='Mobile']" ).val(),
EmailId: $( "input[name='Email']" ).val()
}
$.ajax({
type: "POST",
contentType : 'application/json; charset=utf-8',
dataType : 'json',
url: "/Create/createUser",
data: JSON.stringify(search), // Note it is important
success :function(output) {
alert(output);
},
error: function(e){
alert('failure');
}
});
}
我将包含上述脚本的HTML文件(CreateUser.HTML)保存在项目的WebContent文件夹中。
所以
1.我做错了什么?
2.我应该单独使用@Path和@RequestMapping吗?我认为这与您从Ajax发送的JSON格式有关 这将运行
function fun()
{
var search = { UserName: $( "input[name='UserName']" ).val(),
FirstName: $( "input[name='FirstName']" ).val(),
LastName: $( "input[name='LastName']" ).val(),
Mobile: $( "input[name='Mobile']" ).val(),
EmailId: $( "input[name='Email']" ).val()
}
$.ajax({
type: "POST",
contentType : 'application/json; charset=utf-8',
dataType : 'json',
url: "/Create/createUser",
data: JSON.stringify({search : search }), // Note it is important
success :function(output) {
alert(output);
},
error: function(e){
alert('failure');
}
});
}