2016-11-25 8 views
1

は、私は不思議私はPOSTを見れば、彼らは成功していないと示され、放火犯に呼び出しますが、私がしなければ、「再送信」、彼ら Unsupported Media Type - The server refused this request because the request entity is in a format not supported by the requested resource for the requested method.jQueryの/ AjaxのPOST呼び出し、サポートされていないメディアタイプ

を取得します回答が検索されます。

すでに受け入れられている回答を試しました。jquery ajax rest call - Unsupported Media Type - 私のためには機能しませんでした。

-edit:役立つ場合は、私はMoxyを使用します。

   var sent = "This is a test request."; 
       var add = "testing.."; 
       var request = { sentence: sent, addition: add }; 
       $.ajax({ 

       url: "http://localhost:8080/MyProject/Rest/Path/toPost", 
       type: "POST", 
       data: JSON.stringify(request), 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
        success: function(resultData) { 

          //do stuff 
        }, 

       }); 

この

は私のモデルである:

@XmlRootElement(name = "request") 
public class Request { 

private String sentence; 
private String addition; 

public Request() { 
    this.sentence = "default"; 
    this.addition = "default"; 
} 

public Request(String sentence, String add) { 
    this.sentence = sentence; 
    this.addition = add; 
} 

    public String getSentence() { 
     return sentence; 
    } 

    public String getAddition() { 
     return addition; 
    } 

    public void setSentence(String sentence) { 
     this.sentence = sentence; 
    } 
    public void setAddition(String addition) { 
     this.addition = addition; 
    } 

} 


@XmlRootElement(name = "answer") 
public class Answer { 

private ArrayList<String> lsit; 
private String info; 

public Answer() { 
    this.list = new ArrayList<String>(); 
    this.info = "Good"; 
} 


public Answer(ArrayList<String> list, String info) { 
    this.list = list; 
    thisinfo = info; 
} 


public void setInfo(String info) { 
    this.info = info; 
} 
public String getInfo() { 
    return info; 
} 

public ArrayList<String> getList() { 
    return list; 
} 
public void setList(ArrayList<String> list) { 
    this.list = list; 
} 

} 

そして、これは私のサーブレットです:

@Path("/Path") 
    public class TestServlet { 

     @Path("/toPost") 
     @POST 
     @Consumes({MediaType.APPLICATION_JSON}) 
     @Produces({MediaType.APPLICATION_JSON}) 
     public Answer consume(Request request) { 
      ArrayList<String> res = new ArrayList<String>(); 
      res.add(request.getSentence()); 
      return new Answer(res, "Good"); 
     } 
    } 

答えて

0

は、JSONとしても、あなたはJSONを生産しているので、JSONとして受け入れる設定の文字セットをサポートしてはいけない文字セットを削除しますクライアント。

data: request,

+0

申し訳ありませんが、変更されていません。 – User9123

0

はこれを変更してみてくださいアプリケーションjson、オプションbelo同じ階調設定でも作業しました

$.ajax({ 
      type: 'POST', 
      url: API_URL, 
      contentType: 'application/json', 
      data: JSON.stringify(data), 
      complete: resolve 
     }); 
+0

残念ながらそれは働かなかった。 – User9123

0
$.ajax({ 
      beforeSend: function(xhrObj){ 
       xhrObj.setRequestHeader("Content-Type","application/json"); 
       xhrObj.setRequestHeader("Accept","application/json"); 
      }, 
      type: "POST", 
      url: API_URL, 
      data: JSON.stringify(data), 
      contentType: 'application/json', 
      success: resolve, 
      dataType: 'json' 
     }) 

これはGradleのサーバーは、メディアタイプを消費するポスト要求を除いて、私たちのために働いていた:これまで

data: JSON.stringify(request),

  $.ajax({  
        url: "http://localhost:8080/MyProject/Rest/Path/toPost", 
        type: "POST", 
        data: JSON.stringify(request), 
        Accept : "application/json", 
        contentType: "application/json", 
        dataType: "json", 
         success: function(resultData) { 

           //do stuff 
         }, 

        }); 
関連する問題