2016-06-29 3 views
0

私はangularjsを使ってウェブアプリを作っています。私はelasticsearch apiでリクエストしています。これはコードです:これは誤りであるangularjsを使用してelasticsearchをクロスドメインとしてリクエストする

app.controller('usersDatas', function($scope, $http){ 
    $http.post("http://192.168.6.55:9200/userdata/_search", {headers : { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }, 
    data: "{ 'query': { 'query_string': { 'query': 'png' } } }" 
    // Access-Control-Allow-Origin: true 
    }).success(function(data){ 
    console.log(data); 
    }); 
}); 

私が持っている:

XMLHttpRequest cannot load http://192.168.6.55:9200/userdata/_search. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:9000' is therefore not allowed access. 

私はこれを追加しました:私のelasticsearchに

http.cors: 
    enable: true 
    allow-origin: /https?:/\/\/localhost(:[0-9]+)?/ 

(/etc/elasticsearch/elasticesarch.yml) config。私は問題がelasticsearchかangularjsかどうかは分かりません。 どうすればこの問題を解決できますか?おかげさまで

+0

WindowsまたはLinuxベースのシステムまたはiosを使用していますか? – Gopinath

+0

私はubuntu 16.04を使用しています – theCode

答えて

0

これはまず

  • 開放端子

  • はsudo -i

  • (パスワード)

...すべてのChromeブラウザウィンドウを閉じ、ブラウザの問題ですタイプ

  • グーグル・クロム--disable-ウェブ - [セキュリティ

そのURLにリンクをしてみてくださいあなたはヘッダに追加する必要があります

1

アクセス制御 - 許可 - 起源

PHP例:

header("Access-Control-Allow-Origin: *"); 
header("Content-Type: application/json; charset=UTF-8"); 
関連する問題