2015-01-15 2 views
0

У меня возникли проблемы с возвратом данных с автозаполнением JQuery. это мой пример:Как я могу реализовать Autocomplete для Amazon и JQuery CloudSearch?

<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>jQuery UI Autocomplete - Remote JSONP datasource</title> 
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.11.2/themes/smoothness/jquery-ui.css"> 
    <script src="http://code.jquery.com/jquery-1.10.2.js"></script> 
    <script src="http://code.jquery.com/ui/1.11.2/jquery-ui.js"></script> 
    <!-- <link rel="stylesheet" href="/resources/demos/style.css"> --> 
    <style> 
    .ui-autocomplete-loading { 
    background: white url("images/ui-anim_basic_16x16.gif") right center no-repeat; 
    } 
    #city { width: 25em; } 
    </style> 
    <script> 
    $(function() { 
    function log(message) { 
     $("<div>").text(message).prependTo("#log"); 
     $("#log").scrollTop(0); 
    } 

    $("#city").autocomplete({ 
     source: function(request, response) { 
     //$.getJSON('/http://search-profuturo-iiwjjl6diqb7gluv2inqunahea.us-west-2.cloudsearch.amazonaws.com/2013-01-01/search?', { q: request.term }, function(data){ response(data); }); 


     $.ajax({ 
      url: "http://search-DOMAIN-iiwjjl6diqb7gluv2inqunahea.us-west-2.cloudsearch.amazonaws.com/2013-01-01/search?", 
      dataType: "jsonp", 
      data: { 
      q: request.term 
      }, 
      success: function(data) { 
      response(data); 
      } 
     }); 

     }, 
     minLength: 3, 
     select: function(event, ui) { 
     log(ui.item ? 
      "Selected: " + ui.item.label : 
      "Nothing selected, input was " + this.value); 
     }, 
     open: function() { 
     $(this).removeClass("ui-corner-all").addClass("ui-corner-top"); 
     }, 
     close: function() { 
     $(this).removeClass("ui-corner-top").addClass("ui-corner-all"); 
     } 
    }); 
    }); 
    </script> 
</head> 
<body> 

<div class="ui-widget"> 
    <label for="city">Your city: </label> 
    <input id="city"> 
</div> 

<div class="ui-widget" style="margin-top:2em; font-family:Arial"> 
    Result: 
    <div id="log" style="height: 200px; width: 300px; overflow: auto;" class="ui-widget-content"></div> 
</div> 


</body> 
</html> 

И это ответ:

http://search-DOMAIN-iiwjjl6diqb7gluv2inqunahea.us-west-2.cloudsearch.amazonaws.com/2013-01-01/search?&callback=jQuery11020041068303398787975_1421364823901&q=starwars&_=1421364823902 

Это добавляет все строки:

&callback=jQuery11020041068303398787975_1421364823901 

То есть ошибка, эта строка не является necesary.

мне нужен URL таким образом:

http://search-DOMAIN-iiwjjl6diqb7gluv2inqunahea.us-west-2.cloudsearch.amazonaws.com/2013-01-01/search?q=starwars 

и мне нужен ответ JSON.

Как я могу это сделать?

+0

является правильным URL запроса? Также вы не должны получать URL-адрес в качестве ответа. Вы должны получать данные JSON. – Rafael

ответ

0

Попробуйте

$.ajax({ 
    url: 'http://search-DOMAIN-iiwjjl6diqb7gluv2inqunahea.us-west-2.cloudsearch.amazonaws.com/2013-01-01/search', 
    data: { 
     q: 'starwars' 
    } 
    jsonp : false, 
    jsonpCallback: 'jsonCallback', 
    cache: 'true', 
    dataType: 'jsonp' 
}); 

function jsonCallback(data) { 
    console.log(data); 
} 
+0

Я должен добавить версию API/2013-01-01, чтобы работать в соответствии с документами amazon, я сделал то, что вы сказали, но все еще не работает, я все равно получаю плохой запрос. Спасибо –

+0

Вы уверены, что это ваше доменное имя и домен? И правильное местоположение (нас на запад)? – Rafael

+0

Я хотел бы помочь вам, но вы не внимательны к обсуждению. – Rafael

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