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]);

 },
 });

次のエラーが表示されます

キャッチされない SyntaxError: 予期しないトークン:

ここでバグの画像を見ることができます: 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 に答える