我正在尝试从浏览器发出一个简单的帖子请求,并在浏览器的控制台中显示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
,所以我不需要添加jersey的依赖项,我也尝试glashfish 3.1
仍然得到相同的HTTP错误。
EDIT 2:
标题:
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
答案 0 :(得分:0)
你可以添加泽西依赖:
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
<version>1.11</version>
</dependency>
应解决您的问题
答案 1 :(得分:0)
jQuery.ajax()调用的默认Content-Type
为application/x-www-form-urlencoded; charset=UTF-8
(请参阅documentation),但您希望在JAX-RS资源中使用application/json
。将通话的contentType
参数设置为application/json
。