0

データ型がjsonpの同期ajax呼び出しを行うことができないことを知っており、そのための回避策があるかどうか疑問に思っていました。私はjavascriptを学ぼうとしていて、関数を書こうとしていました

chrome.omnibox.onInputChanged.addListener(function(text, suggest){
       var baseUrl = "http://sample.com";
       var finalResult = [];
              $.ajax({
                     url : baseUrl,
                     dataType : "jsonp",
                     success: function(result) {
                                     for (var i=0; i<result[1].legnth; i++){
                                          finalResult.push(
                                                 {content : result[1][i], description : result[1][i]}
                                          );
                                     }
                              },
                     async: false
              });           
       suggest(finalResult);
});

私は、ajax 呼び出しの結果をSuggest() 関数に提供する必要があります。だから、ajax呼び出しを同期させる必要がありますか?同じオリジンポリシーの問題に遭遇するため、それはできません。どんな助けでも大歓迎です。ありがとう!

4

1 に答える 1

1

匿名の成功関数からサジェスト関数を呼び出すと、ajax 呼び出しを非同期にすることができます。

 chrome.omnibox.onInputChanged.addListener(function(text, suggest){
      var baseUrl = "http://sample.com";
      var finalResult = [];
      $.ajax({
           url : baseUrl,
           dataType : "jsonp",
           success: function(result) {
                for (var i=0; i<result[1].legnth; i++){
                     finalResult.push(
                          {content : result[1][i], description : result[1][i]}
                     );
                }
                suggest(finalResult);
           },
           async: true
      });             
 });
于 2012-07-27T04:00:24.077 に答える