4

我正在使用 jQuery、jQuery-UI 自动完成以及此链接作为源

https://www.google.com/finance/match?matchtype=matchall&callback=callback&q=aa&_=1379423108762 

这是我的代码:

    $("#searchinput").autocomplete({
    source: function (request, response) {
    var q=request.term;  
    $.ajax({
          type: "GET",
          // url: "http://d.yimg.com/autoc.finance.yahoo.com/autoc", for http use only


          url: "https://www.google.com/finance/match?matchtype=matchall",
          data: {q: q},
          dataType: "jsonp",
          contentType: 'application/json; charset=utf-8',
          jsonp : "callback",
          jsonpCallback: "callback",


      });
      // call back function
      callback = function (data) {           
            var suggestions = [];


            //alert(JSON.stringify(data.matches));                            
            $.each(data.matches, function(i, val) {                                                               
                suggestions.push("Name:"+ val.n+" #Symbol:"+val.t+" #Exchange:"+val.e);
            });

        response(suggestions);
      }

 },
minLength: 1,
select: function (event, ui) {

           $("#searchinput").val(ui.item.value.split("#")[0]);

 },
 });

我收到以下错误

Uncaught SyntaxError: Unexpected token :

在这里你可以看到错误图片:http: //i.stack.imgur.com/NYMPG.jpg

4

1 回答 1

2

URL 未返回 JSON-P。错误消息是因为 JSON-P 通过加载远程 JavaScript 工作(这不是 URL 返回的内容)。

由于您不是 Google,因此无法使该 URL 返回 JSON-P。

我会建议获取数据的替代方法,但 Google不为该数据提供 API,因此您将进入违反服务条款的领域。

于 2013-09-17T13:17:54.377 回答