残りのサービスへの単純なjquery ajax呼び出しを行っています。contentType を「application/json」に設定しており、残りのリソースは「MediaType.APPLICATION_JSON」を受け入れるように構成されています。これは POST メソッドです。このセットアップでは、「サポートされていないメディア タイプ」エラーが発生します。
ヘッダー情報は 、要求ヘッダーに「Content-Type application/json; charset=UTF-8」を示しています
応答の表示: ステータス レポート: サポートされていないメディア タイプ 要求エンティティが、要求されたメソッドの要求されたリソースでサポートされていない形式であるため (サポートされていないメディア タイプ)、サーバーはこの要求を拒否しました。
この問題を解決するための指針をいくつか提供してください。
コード スニペットは次のとおりです。
リソースの残り
@POST
@Produces({MediaType.APPLICATION_JSON,MediaType.TEXT_HTML})
@Consumes({MediaType.APPLICATION_JSON,MediaType.TEXT_HTML})
public Response addPerson(MyJSONObj myObj) {
//...
// ...
//...
}
jquery
$(document).ready(function() { /* put your stuff here */
$("#Button_save").click(function(){
var firstName = $('firstName').val();
var lastName = $('lastName').val();
var person = {firstName: firstName, lastName: lastName};
$.ajax({
url:'http://localhost:8080/sampleApplication/resources/personRestService/',
type: 'POST',
data: person,
Accept : "application/json",
contentType: "application/json",
success:function(res){
alert("it works!");
},
error:function(res){
alert("Bad thing happend! " + res.statusText);
}
});
});
});
FF Firebug に表示されるヘッダー
応答ヘッダー
Content-Length 1117
Content-Type text/html;charset=utf-8
Date Thu, 05 Apr 2012 09:44:45 GMT
Server Apache-Coyote/1.1
リクエスト ヘッダー
Accept */*
Accept-Encoding gzip, deflate
Accept-Language en-us,en;q=0.5
Connection keep-alive
Content-Length 97
Content-Type application/json; charset=UTF-8
Host localhost:8080
Referer http://localhost:8080/sampleApplication/
User-Agent Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0
X-Requested-With XMLHttpRequest