[英]Ajax Post request to a Jax-rs service
我正在尝试从浏览器执行一个简单的发布请求,并且在浏览器的控制台中显示415 Unsupported Media
,在控制台中它也表示Type
是text/html
,也许我在这里误解了一些愚蠢的东西,但是我很认真从android客户端执行发布请求,并且一切都可以在服务器端找到,所以我猜(因为我对js不熟悉),这是我在这里遇到的一个javascript问题,这是代码中感兴趣的部分:
ajax(此函数称为send
,它在创建json之前做了一些事情,可以确定并测试了该部分,成功生成了json):
$.ajax({
url: 'webresources/serverConfig/save/',
type: 'post',
dataType:'json',
data: jsonObj
});
我如何以HTML形式调用javascript:
<form action="javascript:send()" method="post">
JAX-RS服务:
@Path("serverConfig/")
public class ConfigurationSaverService {
@POST
@Path("save/")
@Consumes(MediaType.APPLICATION_JSON)
public void save(Configuration configuration){
//config stuffs here.
}
Edit:
由于@adrianplattner的回答,重要的是要说我正在使用glassfish 4.0
,所以我不需要添加球衣的依赖项,我也尝试了glashfish 3.1
并仍然收到相同的HTTP错误。
EDIT 2:
标头:
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
您可以添加球衣依赖项:
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
<version>1.11</version>
</dependency>
那应该解决你的问题
jQuery.ajax()调用的默认Content-Type
是application/x-www-form-urlencoded; charset=UTF-8
application/x-www-form-urlencoded; charset=UTF-8
(请参阅文档 ),但是您希望在JAX-RS资源中使用application/json
。 将您的调用的contentType
参数设置为application/json
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.