2011-12-09 46 views
3

我正試圖在使用jQuery自動完成的opera擴展中實現eBay自動提示。eBay自動完成/使用jQuery建議

eBay的JSON網址是:http://anywhere.ebay.com/services/suggest/?v=jsonp&q=test

,這就是它提供了:

["test",["tube tester","testosterone","battery tester","tester","diamond tester","testoni","one touch ultra test strips","testors"]] 

,但它不分析什麼。我錯過了什麼?

+0

你能提供api文檔的鏈接嗎? –

+0

我還沒有找到用於此目的的實際api文檔,但這是您可以自己查看json結果的URL。以下是XML的路徑:http://anywhere.ebay.com/services/suggest/?v=xml&q=test – jQuerybeast

+1

您不能使用任意URL作爲JSONP源 - 您要調用的服務必須配置爲支持JSONP。 –

回答

1

用php文件處理json調用。

這裏是JavaScript:

$("input").autocomplete({ 
    source: function(request, response) { 
    $.ajax({ 
     url: "ajax.php", 
     dataType: "json", 
     data: { 
      "v" : "jsonp", 
      "q" : request.term 
     }, 
     success: function (data) { 
       response(data[1]); 
     } 
    }); 
    } 
}); 


和ajax.php

<?php 
    $v = $_GET['v']; 
    $q = $_GET['q']; 

    echo file_get_contents("http://anywhere.ebay.com/services/suggest?v=$v&q=$q"); 
?> 


我認爲jQuery的阿賈克斯()不支持 「JSONP」 數據類型,因爲它是問題一直存在。
儘管你仍然在json中有相同的響應。

+0

jQuery ajax()支持jsonp數據類型絕對沒問題:http://api.jquery.com/jQuery.ajax/我看不出爲什麼我的方式不起作用 – jQuerybeast

+0

你說得對,它應該支持jsonp。但是,每次運行代碼時,我都會在jsonp上使用jQuery中的dataType得到「parseerror」。你有沒有檢查過jQuery的bug,也許你會找到一些東西,因爲它肯定有效。或者我錯過了這一點。 – YoannM

+0

這就是我來這裏的原因。這種情況沒有錯誤。它絕對可以找到與其他網站 – jQuerybeast