2015-01-15 85 views
0

我在使用Jquery插件自動完成回顧數據時遇到了問題。這是我的例子:如何實現CloudSearch Amazon和Jquery自動完成功能?

<!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作爲你的迴應。你應該獲取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,我曾經說過,但仍然無法正常工作,但仍然收到了錯誤的請求。謝謝 –

+0

你確定這是你的域名和域名嗎?和正確的位置(我們西)? – Rafael

+0

我想幫助你,但你不注意討論。 – Rafael