0

我正在尝试从浏览器发出一个简单的发布请求,并415 Unsupported Media显示在浏览器的控制台中,在控制台中它也说Typeis 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' 
},
4

2 回答 2

0

jQuery.ajax() 调用的默认Content-Type值为application/x-www-form-urlencoded; charset=UTF-8(请参阅文档),但您希望application/json在您的 JAX-RS 资源中使用。将contentType调用的参数设置为application/json.

于 2013-08-07T19:11:08.277 回答
0

您可以添加球衣依赖项:

 <dependency>
     <groupId>com.sun.jersey</groupId>
     <artifactId>jersey-json</artifactId>
     <version>1.11</version>
 </dependency>

那应该可以解决您的问题

于 2013-08-07T17:30:58.093 回答