【问题标题】:JAX-RS POST method 415 Unsupported Media Type [duplicate]JAX-RS POST 方法 415 不支持的媒体类型 [重复]
【发布时间】:2016-06-06 10:44:05
【问题描述】:

我知道有一些线程有同样的问题,但是我没有让它正常运行。我对此还是很陌生。

我有一个 JAX-RS 服务器正在运行:

GET 方法有效。 POST 方法没有。

@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response post(Movie movie){
    System.out.println("In the POST method");

    String result = movie.toString();

    return Response.status(201).entity(result).build();

我想在我的 Oracle JET 客户端中发帖:

addMovie = function(){
    console.log("post sent");
      $.ajax({
        type: "POST",
        url: "http://localhost:8080/MovieRestService/resources/movies",
        headers: {

            "Content-Type": "application/json"
        },           
        data:  
                    {
                        id: 2,
                        name: "test",
                        director: "test",
                        year: 234
                    },
        success: "success",
        dataType: 'application/json'
      });

它一直给我一个415 Unsupported Media Type 错误。 对我来说似乎有点奇怪的是,在响应标头中,内容类型是 text/html Content-Type: text/htlm

谁有解决办法?

编辑:

在网上进行大量搜索后,我终于设法找出真正的问题是什么...... Glassfish 4.1.1 似乎有一个错误,是什么导致了在我的服务器上发帖时出现的问题...... .

【问题讨论】:

  • 尝试设置contentType: 'application/json', dataType: 'json'
  • @gmaslowski 不适合我。仍然得到同样的错误

标签: java ajax post jax-rs oracle-jet


【解决方案1】:

这应该有效

    var url = 'http://localhost:8080/MovieRestService/resources/movies';
    var sucessCallback = function(response) {...}
    var data = JSON.stringify({
                    id: 2,
                    name: "test",
                    director: "test",
                    year: 234
                });
    $.ajax({
        url: url,
        method: POST,
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        data: data,
        cache: false,
        context: this,
    }).success(sucessCallback);

【讨论】:

  • 当我使用它时,它被视为GET 方法。它返回数据库中的所有记录
  • 对不起,我忘了添加方法 Post。
  • 是的,我已经手动添加了,但是它仍然会抛出同样的错误..
  • @rssd 我认为您的问题出在您发送的数据格式上。为消除数据格式问题,请尝试在没有数据的情况下发送请求。
  • 我的主要问题是 ajax 帖子中缺少 contentType,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-17
  • 2020-09-03
  • 2017-03-06
  • 1970-01-01
  • 2018-06-11
相关资源
最近更新 更多