extjsストアを使用して、Jsonを返すJersey Rest Javaアプリケーション(tomcatで実行)と通信しようとしています。そして、Jsonを使用してグリッドコンポーネントに印刷しようとしています。これは私のストアコードです。
Ext.define('WSC.store.Users', {
extend: 'Ext.data.Store',
fields: ['period','tot_units', 'tot_selling_price'],
model: 'WSC.model.User',
proxy: {
type: 'rest',
url : 'http://localhost:8080/mondrianCube/services/query/querygoeshere/json',
reader: {
type: 'json',
root: 'table'
}
},
autoLoad: true
});
取得したjsonをストアが読み取ることができませんでした。推奨事項のほとんどは、応答ヘッダー(Access-Control-Allow-Origin)をwebapp(tomcatで実行)に追加することでした。そこで、以下のような応答ヘッダーを追加しました。
@Path("/query/{qryParam}/json")
@GET
@Produces(MediaType.APPLICATION_JSON)
public static Response jsonResult(@PathParam("qryParam") String qryParam) throws JSONException
{
executeQuery("select {[Measures].members} on columns, {Time.[2010], Time.[2010]} on rows from sales" );
String json = (new JSONObject(((new ResultSetConvert(result)).toJson()))).toString();
return Response.ok(json).header("Access-Control-Allow-Origin","*").build();
}
それでも、以下と同じエラーが発生します
ここで何が欠けていますか?
PS URLが同じドメイン内のファイルを指している場合、ストアはファイル内のjsonを読み取ることができます。