Firefox から Tomcat サーバーへの CORS POST 呼び出しを実行しようとしています。Tomcat は RESTful サービスを提供します。サーバー側の戻りコードは次のとおりです。
ResponseBuilder rb = Response.ok( JSON.serialize(result));
rb.header("Content-Type", "text/javascript;charset=utf8");
rb.header("Access-Control-Allow-Origin", "*");
rb.header("Access-Control-Max-Age", "3628800");
rb.header("Access-Control-Allow-Methods", "GET,POST");
return rb.build();
そして、これは私のAJAX呼び出しです:
var feedQueryPOST = {"param" : someListOfParams, "timeWindow": 36000};
$.ajax({
type: 'POST',
url:"http://xxx.xxx.xxx.xxx:8080/MyWebService/getwebfeed",
contentType: "text/plain",
data: feedQueryPOST,
async: true,
success:function(json){
alert("success!");
},
error:function(e){
alert(JSON.stringify(e));
},
});
テスト クエリを実行するときに、RESTClient を使用してヘッダーを検査すると、次のように返されます。
Status Code: 200 OK
Access-Control-Allow-Methods: GET,POST
Access-Control-Allow-Origin: *
Access-Control-Max-Age: 3628800
Content-Length: 318
Content-Type: text/javascript;charset=utf8
Date: Mon, 31 Dec 2012 12:02:11 GMT
Server: Apache-Coyote/1.1
しかし、私のjavascriptの終わりでは、コールバックはまだreadystate = 0およびstatus = 0でエラーになります。私は非常に長い間答えを探していましたが、役に立ちませんでした。ここで単純なものが不足している可能性があることはわかっています。事前に感謝します。