0

私が達成しようとしているのは、GoogleのグラフAPIを使用してテーブルをグラフ化することです。ページが読み込まれると、RESTサーバーにJSONデータを照会します。これは私のJavascript関数です。

JavaScriptコンソールはエラーを表示しません。

 $(document).ready(function() { 
        $.ajax({
                      url: 'http://localhost:8004/project5',
                      dataType: "json",
                      async:false,
                      error: function(error){
                             console.debug(error);
                         },
                      success:  function(data)
                        {
                                alert("YESSSSS");   
                                var data = data.results;    
                                for(var i=0; i<data.length; i++) {

                                    mytable[arraysize] = new terms(data[i].term1, data[i].term2, (data[i].contains)/((data[i].contains)+ (data[i].notcontains)));
                                    arraysize +=1;

                                }

                                    drawTable();

                        }


                    });
    });

これは、「 http:// localhost:8004/project5」を使用してブラウザでサーバーにクエリを実行したときに返されるJSONです。

{
  "results":[
  {
     "term1":"test",
     "term2":"hard",
     "contains":"32",
     "notcontains":"55"
  },
  {
     "term1":"test",
     "term2":"easy",
     "contains":"32",
     "notcontains":"55"
  },
  {
     "term1":"pizza",
     "term2":"hut",
     "contains":"32",
     "notcontains":"55"
  }
   ]
}

コンテンツのhtmlコンテンツが、関数が成功したかどうかをテストするために使用していた「YESSSS」に設定されていません。ページが読み込まれると、RESTサーバーはクエリが実行されたことを認識し、JSONを正常に返します。したがって、問題は返されたJSONからデータを取得することだと思います。それは私が立ち往生しているところです。

編集:私の成功関数が呼び出されていないようです。これは、JavaRESTサーバーであるJAX-RSで呼び出される関数です。JSONを生成します。

 @GET
  @Produces(MediaType.APPLICATION_JSON)
  public String getStudentByid(@QueryParam("id") String id) {

      System.out.println("Queried");
      if (id == null)
          return Terms.stringTerms(container);
      return Terms.getTermsByFirst(container, id);
 }

XMLHttpRequest cannot load http://localhost:8004/project5/terms.json. Origin null is not allowed by Access-Control-Allow-Origin. エラーが発生しました

4

2 に答える 2

1

最後の編集を読んで、クロスサイトスクリプティングの問題があるようです。HTMLページが提供された場所とは異なるドメインにあるサイトにajaxリクエストを送信しています。

たぶん、この問題は開発時にのみ発生し、本番環境では、HTMLページはajaxリクエストと同じサイトから取得されます。次に、開発環境を実際のデプロイメントと同様にすることを検討する必要があります。

たとえば、ローカルドライブからHTMLページを開くだけでなく、「実際の」Webサーバーを使用してHTMLページを配信します。

于 2012-11-12T08:22:04.793 に答える
0

console.log( "step1")を置くだけです

または2または3で、コードのさまざまな部分に移動し、ログが停止する場所を確認します。それがあなたの問題です。

手がかりとなる可能性のある他のすべてをログに記録することもできます。

于 2012-11-12T07:37:29.677 に答える