2016-02-05 5 views
1

im пытается связать мой полимерный элемент с моим собственным elasticsearch-сервером. Моя первая проблема заключалась в том, что они находятся на двух разных портах, поэтому им пришлось выбирать JSONP из-за проблем с несколькими доменами.Elasticsearch не возвращает jsonp

Так что я узнал, что мне просто нужно добавить http.jsonp.enable: true в elasticsearch.yml.

Я запускаю сервер, просто выполнив команду «elasticsearch.bat». Я проиндексировал данные.

Если я пытаюсь загрузить API через iron-jsonp-library, im всегда получает непредвиденную ошибку токена.

<iron-jsonp-library id="libraryLoader" 
     library-url="http://127.0.0.1:9200/data/_search?pretty%%callback%%" 
     notify-event="api-load" 
     callbackName="jsonpCallback"> 
    </iron-jsonp-library> 

В Google Chrome, я получаю следующий результат от elasticsearch

{"took":2,"timed_out":false,"_shards":{"total":5,"successful":5,"failed":0},"hits":{"total":5,"max_score":1.0,"hits":[{"_index":"data","_type":"data","_id":"5","_score":1.0,"_source":{"id":5,"name":"Meyr","manufacturer":"Meyr","weight":1.0,"price":1.0000,"popularity":1,"instock":true,"includes":"Meyr"}},{"_index":"data","_type":"data","_id":"2","_score":1.0,"_source":{"id":2,"name":"Meier","manufacturer":"Meier","weight":1.0,"price":1.0000,"popularity":1,"instock":true,"includes":"Meier"}},{"_index":"data","_type":"data","_id":"4","_score":1.0,"_source":{"id":4,"name":"Mair","manufacturer":"Mair","weight":1.0,"price":1.0000,"popularity":1,"instock":true,"includes":"Mair"}},{"_index":"data","_type":"data","_id":"1","_score":1.0,"_source":{"id":1,"name":"Maier","manufacturer":"Maier","weight":1.0,"price":1.0000,"popularity":1,"instock":true,"includes":"Maier"}},{"_index":"data","_type":"data","_id":"3","_score":1.0,"_source":{"id":3,"name":"Mayr","manufacturer":"Mayr","weight":1.0,"price":1.0000,"popularity":1,"instock":true,"includes":"Mayr"}}]}} 

Из-за некоторых интернет-знания JSONP, его не JSONP. Почему мой сервер elasticsearch, а не форматирование?

+0

Вы пытались использовать 'iron-ajax'. – Srik

+2

Вы до v2.0? Похоже, они удалили jsonp в 2.0 (https://www.elastic.co/guide/en/elasticsearch/reference/2.2/breaking_20_setting_changes.html#_jsonp_support). В противном случае 'pretty %% callback %%" 'не выглядит правильным, аргумент' %% callback %%' обычно нуждается в имени (например, 'onload = %% callback %%'). –

+0

@Srik - Да, я первый указав на iron-ajax, использовал его, но потом я получил ошибку кросс-домена. Поэтому мне нужно было использовать что-то другое. – Marius

ответ

2

Вы до версии 2.0? Похоже, они удалили jsonp в 2.0 (elastic.co/guide/en/elasticsearch/reference/2.2/…).

Также pretty%%callback%% не выглядит правильным, макрос обычно должен быть значением имени (например, onload=%%callback%%). Элемент заменяет %%callback%% именем глобальной функции, созданной для вас.