使用jsonp解决方法进行同步ajax调用

Synchronous ajax calls with jsonp workaround?

本文关键字:同步 ajax 调用 jsonp 解决 方法 使用      更新时间:2024-04-16

我知道我不能在数据类型为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);
});

我需要向suggest()函数提供ajax调用的结果。所以我需要ajax调用是同步的,对吗?我不能这么做,因为那样我就会遇到同源政策的问题。如有任何帮助,我们将不胜感激。谢谢

从匿名成功函数中调用suggest函数,这样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
      });             
 });