2011-12-09 39 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