私はElasticSearchでオートコンプリートjquery関数を使用しています。クロスオリジンリクエストがブロックされました:同じ原点ポリシーで、http:// localhost:9200/test12/test3/_search?でリモートリソースを読み取ることができませんか?
クロスオリジン要求がブロックされました:同じソースポリシーがリモートリソースを読み取ることを許可しません。http://localhost:9200/test12/test3/_search?prettyで、次のエラーが表示されます。 (理由:CORSヘッダー「Access-Control-Allow-Origin」がありません)。
は、ここで私はまた、それがうまくいきませんでした'Access-Control-Allow-Origin': '*'
しようとしたコード
$(function() {
$("#keyword").autocomplete({
source: function (request, response) {
$.ajax({
url: "http://localhost:9200/test12/test3/_search?pretty",
data: "q=firstname:" + request.term +"*" ,
dataType: "json",
type: "POST",
headers: {
'Access-Control-Allow-Origin': 'http://localhost'
},
crossDomain: true,
jsonpCallback:"callback",
contentType: "application/json; charset=utf-8",
success: function (data) {
console.log(data);
response($.map(data.d, function (item) {
return {
label: item.split('-')[0],
val: item.split('-')[1]
}
}))
},
error: function (response) {
alert('error'+ response.responseText);
},
failure: function (response) {
alert('failure'+response.responseText);
}
});
},
select: function (e, i) {
$("[id$=keyword]").val(i.item.val);
},
minLength: 1
});
});
です。
私はjsonp
代わりjson
のをしようとすると、私は、サーバー上の
(私のコードは、JSONないJSONPものを期待しているので、正常です)
構文エラーを取得する:私は、
Header always set Access-Control-Allow-Origin "*" Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT" Header always set Access-Control-Max-Age "1000" Header set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin$ /etc/apache2/apache2.conf
STILL問題を解決していない
'Access-Control- * 'ヘッダーは**応答**ヘッダーです。彼らはサーバーから来る必要があります – Phil
["No 'Access-Control-Allow-Origin'ヘッダーが要求されたリソースに存在します]](http://stackoverflow.com/questions/20035101/no-access-control -allow-origin-header-present-on-the-requested-resource) – Phil
SERVERでクロスオリジンのサポートを有効にします。ブラウザーは、サーバーが許可しない限り、クロスオリジン要求を許可しません。 – jfriend00