2016-06-16 9 views
0

私はElasticSearchを初めて使用しています。 HTMLページに表示するにはjavascriptからElasticSearchを検索した後にjsonにアクセスする必要があります。 ですが、常にエラーが発生します。 これに使用できるコードがありますか?私は頭の中で "http://code.jquery.com/jquery-latest.js" を追加したコードでJavaScriptを使用してJavaScriptを使用してElasticSearchのJSONにアクセスする

次のように..

私のコードは次のとおりです。事前に

<h1>Search Result!</h1> 
    <br /> 
    <input id="searchterm" /> 
<button id="search">search</button> 
<div id="results"></div> 

<script> 
    $("#search").click(function(e){ 
    var data = { 
      query:{match:{_all:$('#searchterm').val()}}, 
      fields: '_id' 
      }; 

      alert(JSON.stringify(data)); 

      $.ajax({ 
      url: 'server_url:9200/testindex/testindex/_search?q=*&pretty', 
      dataType: 'json', 
      type: 'POST', 
      contentType: 'application/json', 
      crossDomain: true, 
      data: JSON.stringify(data), 
      success: function(data) { 
      // alert(""+JSON.parse(data.hits.total)); 
       $("#results").empty(); 
       $("#results").append("<p>Results for <b>" + $("#searchterm").val() + "</b></p>"); 
       $.each(data.hits.hits, function(i,item){ 
       $("#results").append("<div><a href='#'>" + item._id + "</a></div>"); 
       }); 
      } 
      }); 
     }); 
</script> 

ありがとう!

+0

:?CORSヘッダを追加したり、ElasticsearchにCORSサポートを有効に、地域開発のための十分なhttps://www.elastic.co/guide/en/elasticsearch/reference/current/modules-http.html

簡単に安全でない設定を参照するにはnginxの – Thomas

+0

エラーメッセージ:XMLHttpRequestはhttp:// server_url:9200/testindex/testindex/_search?q = *&prettyをロードできません。プリフライト要求への応答がアクセス制御チェックを通過しない:要求されたリソースに「アクセス制御許可」がない。したがって、 'http:// server_url'はアクセスが許可されていません。 –

答えて

0

問題は、CORSヘッダーの欠落が原因です。プロキシサーバーを使用することもできます。エラーメッセージは何ですか

http.cors.enabled = true http.cors.allow-origin = *

+0

ちょっとトーマス、助けてくれてありがとう。今働いている。私は今、自分のHTML上でjsonにアクセスする方法を設定しています。 –

関連する問題