2015-12-30 4 views
-1

Я пытаюсь получить результат из URL, созванном AJAX, но даже если я вызываю страницу по сценарию успех метод не показывает мне результат:Не удалось получить ответ от AJAX результат

<script type="text/javascript"> 
    function searchES() { 

    var term = $('input[name=q]').val(), 
     url = "http://localhost:9200/_search", 
     result = ""; 

     //alert(term); 
     //alert(url); 

      $.ajax({ 
      url: url, 
      type:'get', 
      data: {q: term}, 
      dataType: 'json', 
       success: function(response) { $('#result').empty().append("Done is : " + response); } 
       }); 

      //event.preventDefault(); 
    } 
</script> 

Элементом Firefox Inspect я вижу, что был создан собственный «get».

11:00:21.900 GET XHR http://localhost:9200/_search?q= *

Не могли бы вы сообщить, что я пропустил?

Большое спасибо заранее, С уважением, Редди


Обновлено:

Таким образом, проблема, как представляется, с CORS. Во всяком случае, я добавил фильтрацию в web.xml приложения Tomcat WebApps Я работаю на:

<filter> 
    <filter-name>CorsFilter</filter-name> 
    <filter-class>org.apache.catalina.filters.CorsFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>CorsFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

, а также добавлен параметр

crossDomain:true, 

в код AJAX, но по-прежнему получаю сообщение об ошибке:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:9200/_search?q= *. (Reason: CORS header 'Access-Control-Allow-Origin' missing).

Упругий поиск по умолчанию отключен CORS. Следовательно, проблема, похоже, связана с моими webapps Tomcat.

Любые другие идеи?

+1

сначала убедитесь, что он получает в 'success' событие, сделав его для входа в консоль с' console.log (ответ); ' –

+0

Может быть проблема с' д = * ' –

+3

Выполняется ли запрос, который вы регистрируете, в результате ответа «200 - OK» или какого-либо другого кода, возможно, является ошибкой? Возможно, стоит добавить обработчик для 'error', а также' success'. –

ответ

0

Возможно, вы не получите успешный ответ. Попытайтесь поймать ошибку и полные методы и проверьте, какие ответы в этих случаях.

Это даст лучшее представление о том, что не так с вызовом.

Проверьте, пожалуйста, http://api.jquery.com/jquery.ajax/.

+1

Кажется, что проблема не с кодом, а с ограничениями безопасности: 12: 27: 40.983 Запрос на перекрестный запрос заблокирован: ** В той же политике происхождения запрещается читать удаленный ресурс ** по адресу http : // локальный: 9200/_search д = *. (Причина: заголовок CORS «Access-Control-Allow-Origin» отсутствует). –

+0

@ ReddySK прочитал ответ на [link] (http://stackoverflow.com/questions/10636611/how-does-access-control-allow-origin-header-work) и посмотреть, помогает ли он. –

-1

Сначала проверьте значение term, затем проверьте ответ, который вы получаете, используя console.log() в success() вызова ajax.

+0

что с этим. Зачем кому-то снижаться? :( – Maddy

0

После попытки и много попыток возникла проблема с конфигурацией Elasticsearch.

Там был вариант отсутствует

http.cors.allow-origin: "/.*/" 

Поэтому правильная полная конфигурация

http.cors.allow-origin: "/.*/" 
http.cors.enabled: true 

и в Ajax должен вызвать

crossDomain: true, 

С помощью этой опции я получаю правильный результат ,

Благодарим всех за ваши комментарии и советы.

Cheers, Reddy

Смежные вопросы